用途:便捷地設置nat流量轉發
適用於centos8、redhat8、fedora31和支持nftables的debian系linux發行版如debian10
准備工作
- 關閉firewalld
- 關閉selinux
- 開啟內核端口轉發
- 安裝nftables(一般情況下,centos8默認包含nftables)
以下一鍵完成:
service firewalld stop systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config sed -n '/^net.ipv4.ip_forward=1/'p /etc/sysctl.conf | grep -q "net.ipv4.ip_forward=1" echo 1 > /proc/sys/net/ipv4/ip_forward if [ $? -ne 0 ]; then echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p fi yum install -y nftables
使用說明
# 必須是root用戶 # sudo su # 下載可執行文件 wget -O /usr/local/bin/nat http://cdn.arloor.com/tool/dnat chmod +x /usr/local/bin/nat # 創建systemd服務 cat > /lib/systemd/system/nat.service <<EOF [Unit] Description=dnat-service After=network-online.target Wants=network-online.target [Service] ExecStart=/usr/local/bin/nat /etc/nat.conf LimitNOFILE=100000 Restart=always RestartSec=60 [Install] WantedBy=multi-user.target EOF # 設置開機啟動,並啟動該服務 systemctl daemon-reload systemctl enable nat # 生成配置文件,配置文件可按需求修改(請看下文) cat > /etc/nat.conf <<EOF SINGLE,49999,59999,baidu.com RANGE,50000,50010,baidu.com EOF systemctl start nat
自定義轉發規則
/etc/nat.conf如下:
SINGLE,49999,59999,baidu.com RANGE,50000,50010,baidu.com
- 每行代表一個規則;行內以英文逗號分隔為4段內容
- SINGLE:單端口轉發:本機49999端口轉發到baidu.com:59999
- RANGE:范圍端口轉發:本機50000-50010轉發到baidu.com:50000-50010
- 請確保配置文件符合格式要求,否則程序可能會出現不可預期的錯誤,包括但不限於你和你的服務器炸掉(認真
如需修改轉發規則,請vim /etc/nat.conf以設定你想要的轉發規則。修改完畢后,無需重新啟動vps或服務,程序將會自動在最多一分鍾內更新nat轉發規則(PS:受dns緩存影響,可能會超過一分鍾)