centos8使用nftable實現端口轉發


用途:便捷地設置nat流量轉發
適用於centos8、redhat8、fedora31和支持nftables的debian系linux發行版如debian10
准備工作
  1. 關閉firewalld
  2. 關閉selinux
  3. 開啟內核端口轉發
  4. 安裝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緩存影響,可能會超過一分鍾)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM