ubuntu防火墙端口转发设置
导读:Ubuntu防火墙(UFW)端口转发设置指南 端口转发是网络中常见的流量重定向技术,通过UFW(Ubuntu默认防火墙工具)可实现内外网端口映射。以下是详细步骤: 1. 启用IP转发(内核级配置) 要让Ubuntu系统转发数据包,需先开启I...
Ubuntu防火墙(UFW)端口转发设置指南
端口转发是网络中常见的流量重定向技术,通过UFW(Ubuntu默认防火墙工具)可实现内外网端口映射。以下是详细步骤:
1. 启用IP转发(内核级配置)
要让Ubuntu系统转发数据包,需先开启IP转发功能。
- 编辑
/etc/sysctl.conf
文件:sudo nano /etc/sysctl.conf
- 找到
net.ipv4.ip_forward=1
(若被#
注释,需删除注释),保存并退出。 - 应用配置:
此操作使系统立即启用IP转发。sudo sysctl -p
2. 配置UFW允许转发
默认情况下,UFW会阻止转发流量,需修改其默认策略。
- 编辑
/etc/default/ufw
文件:sudo nano /etc/default/ufw
- 找到
DEFAULT_FORWARD_POLICY="DROP"
,将其改为ACCEPT
,保存并退出。
3. 添加端口转发规则
UFW的转发规则需写入before.rules
文件(该文件中的规则会在标准过滤规则前执行)。
- 编辑
/etc/ufw/before.rules
文件:sudo nano /etc/ufw/before.rules
- 在文件末尾(
*filter
部分之前)添加以下内容(以“将外部8000端口转发到内部192.168.1.100的8080端口”为例):
说明:# NAT table rules *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] # 转发外部8000端口到内部8080端口(TCP协议) -A PREROUTING -p tcp --dport 8000 -j DNAT --to-destination 192.168.1.100:8080 # 允许转发后的流量返回(避免源地址伪装影响本地网络) -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE COMMIT
PREROUTING
链:将目标端口为8000的TCP流量重定向到192.168.1.100:8080
;POSTROUTING
链:对转发到内部网络的流量进行源地址伪装(MASQUERADE),确保返回数据包能正确路由。
4. 重启UFW使配置生效
修改配置后,需重启UFW加载新规则:
sudo ufw disable &
&
sudo ufw enable
或直接重启服务:
sudo systemctl restart ufw
重启后,UFW会应用before.rules
中的转发规则。
5. 验证端口转发是否生效
可通过以下方式验证:
- 本地测试:在Ubuntu服务器上执行:
若返回内部服务器(192.168.1.100)的8080端口内容,则转发成功。curl http://localhost:8000
- 外部测试:从另一台设备访问Ubuntu服务器的公网IP的8000端口(如
http://< Ubuntu公网IP> :8000
),若能访问内部服务,则配置正确。
注意事项
- 若需转发到IPv6地址,需修改
/etc/sysctl.conf
中的net.ipv6.conf.all.forwarding=1
并重启系统,同时在before.rules
中使用ip6tables
规则。 - 确保内部服务器(如192.168.1.100)的防火墙允许来自Ubuntu服务器的转发流量(如开放8080端口)。
- 若UFW未启用,需先执行
sudo ufw enable
开启防火墙。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu防火墙端口转发设置
本文地址: https://pptw.com/jishu/733254.html