[Ubuntu][网络][教程]端口转发以及端口管理

1. 平台介绍

  • Ubuntu 20.04 LTS

  • Armv7

    image-20230328185234422

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:3702

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain 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博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值