当前位置: 首页 > article >正文

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


http://www.kler.cn/a/4072.html

相关文章:

  • Oracle数据库传统审计怎么用
  • 差分(前缀和的逆运算)
  • HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (三、影视搜索页功能实现)
  • Nginx三种不同类型的虚拟主机(基于域名、IP 和端口)
  • 数据可视化:让数据讲故事的艺术
  • php-2025面试题准备
  • 【前推回代法】含有分布式电源的三相不平衡配电网潮流计算【IEEE33节点】(Matlab代码实现)
  • 数据库总结笔记
  • 第三章:Linux环境基础开发工具使用
  • 【云原生】容器编排技术Docker Compose
  • R语言 使用bnlearn包中的数据集
  • 多个sheet Excel 数据 导入数据库 如何实现?
  • 世界棒球经典赛:大谷翔平击败美国队,日本队第三次夺冠
  • 【Stable Diffusion】windows 1050显卡,17年笔记本还能再战
  • 【SSconv:全色锐化:显式频谱-空间卷积】
  • 【周末闲谈】畅想AR,AR领域迎来新风口
  • 正则表达式作业
  • 是面试官放水,还是企业实在是缺人?这都没挂,字节原来这么容易进...
  • 【云原生之企业级容器技术 Docker实战一】Docker 介绍
  • 图书管理系统(考试样品)
  • 域权限维持(ACL滥用)
  • 浏览器前进与后退的秘密——栈 (栈的理解与实现)
  • 后端Springboot框架搭建APi接口开发(第二章)
  • 前端面试笔试题总结
  • TC275-点亮属于AutoSAR的灯之Davinci Cfg配置
  • TypeScript的入门