什么是端口转发?
端口转发(Port Forwarding)是将外部网络流量路由到本地服务器内部服务的技术。常用于穿透防火墙、实现内网服务暴露等场景。
👉 点击了解基础概念
高级技巧与配置方法
1. 使用 iptables
实现动态转发
# 示例:将外部端口8080转发到本地服务
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
sudo iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT
📌 注意:需确保 ip_forward
已启用
sudo sysctl -w net.ipv4.ip_forward=1
2. 通过 socat
实现灵活转发
socat TCP-LISTEN:8080,fork TCP:192.168.1.100:80
🧠 适合需要双向通信或协议转换的场景
👉 深入探索 socat 工具
3. 配置 nginx
作为反向代理
location / {
proxy_pass http://192.168.1.100;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
📦 适用于Web服务转发,需安装并启动nginx
常见应用场景
- 🏠 内网穿透:将本地服务暴露给公网
- 🌐 服务负载均衡:分配流量到多个后端节点
- 🔐 安全隔离:通过转发规则限制访问来源
注意事项
⚠️ 安全第一:开放端口可能带来风险,建议结合防火墙规则(如 ufw
或 firewalld
)
⚠️ 端口冲突:避免与现有服务端口重复
⚠️ 持久化配置:iptables
规则需保存以保持重启后生效
sudo iptables-save > /etc/iptables/rules.v4