上海网站备案公司南阳哪有做网站公司
1. 平台介绍
-  
Ubuntu 20.04 LTS
 -  
Armv7

 
2. 端口管理
进行端口转发之前,要先对端口进行一系列设置
2.1 安装ufw
sudo apt install ufw
 
2.2 开启22端口
开启ufw之后,默认的22端口不会自动打开,使用SSH的话需要手动打开
sudo ufw allow 22
 
如果需要关闭端口
sudo ufw delete allow 22
 
查看端口开启状态
sudo ufw status
 
2.3 开启ufw
sudo ufw enable
sudo ufw default deny  # 默认关闭所有访问
 
3. 端口转发
3.1 开启Linux内核转发功能
编辑/etc/sysctl.conf文件
将net.ipv4.ip_forward = 0
修改为:net.ipv4.ip_forward = 1  #开启内核转发功能
 
下面的命令使得配置修改生效
sudo sysctl -p
 
3.2 添加iptables规则
此处使用iptables进行转发
这里以8899端口为例,将192.168.0.108的数据转发到192.168.3.51,反之从192.168.5.1转发到192.168.0.108
sudo iptables -t nat -A PREROUTING -p udp --dport 8899 -j DNAT --to-destination 192.168.3.53:8899
 
sudo iptables -t nat -A POSTROUTING -p udp -d 192.168.3.53 --dport 8899 -j SNAT --to-source 192.168.0.108
 
如果需要删除iptables规则
首先列出已添加的规则
sudo iptables -t nat -L -n
 
示例:
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:192.168.3.53:80
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8899 to:192.168.3.53:8899
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:8899 to:192.168.3.53:8899
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:554 to:192.168.3.53:554
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:554 to:192.168.3.53:554
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:3702 to:192.168.3.53:3702
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3702 to:192.168.3.53:3702Chain INPUT (policy ACCEPT)
target     prot opt source               destinationChain OUTPUT (policy ACCEPT)
target     prot opt source               destinationChain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0
SNAT       tcp  --  0.0.0.0/0            192.168.3.53         tcp dpt:80 to:192.168.0.108
MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0
SNAT       tcp  --  0.0.0.0/0            192.168.3.53         tcp dpt:8899 to:192.168.0.108
SNAT       udp  --  0.0.0.0/0            192.168.3.53         udp dpt:8899 to:192.168.0.108
SNAT       udp  --  0.0.0.0/0            192.168.3.53         udp dpt:554 to:192.168.0.108
SNAT       udp  --  0.0.0.0/0            192.168.3.53         udp dpt:3702 to:192.168.0.108
SNAT       tcp  --  0.0.0.0/0            192.168.3.53         tcp dpt:3702 to:192.168.0.108
SNAT       tcp  --  0.0.0.0/0            192.168.3.53         tcp dpt:554 to:192.168.0.108 
比如我要删除这条规则
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3702 to:192.168.3.53:3702
 
因为其在PREROUTING链里,然后其位于第7个,所以执行
iptables -t nat -D PREROUTING 7
 
如果我要删除这条规则
SNAT       tcp  --  0.0.0.0/0            192.168.3.53         tcp dpt:554 to:192.168.0.108
 
因为其在POSTROUTING链里,然后其位于第7个,所以执行
iptables -t nat -D POSTROUTING 7
 
3.3 放行转发命令(重要)
此处因为使用无线网卡进行转发,所以其网卡名为wlan0
# 放行Forward的数据包
iptables -I FORWARD -i wlan0 -j ACCEPT
# 开启网卡混杂模式(允许任意流向的数据包)
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
 
3.4 开启端口
使用上面配置的ufw进行端口管理
由于我转发了8899端口,因此将8899端口打开
sudo ufw allow 8899
 
4. 查看状态
4.1 查看端口开启状态
sudo ufw status
 
3.6 列出转发规则
sudo iptables -t nat -L -n
 
执行命令后列出的和添加iptables中删除iptables规则里面的示例一样。
5. 参考
iptables端口转发配置实现_iptables 开启转发_C3399的博客-CSDN博客
ubuntu的ufw如何开放特定端口?_ufw开启端口_justheretobe的博客-CSDN博客
