Linux 转发命令速查,Linux常见转发命令

首页 2026-05-11 13:52:09

一、开启IP转发(核心开关)

bash
# 临时开启(重启失效)
sysctl -w net.ipv4.ip_forward=1

# 永久开启
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

# 验证是否生效
sysctl net.ipv4.ip_forward
# 输出应为:net.ipv4.ip_forward = 1

二、端口转发命令

场景1:本机端口转发(8080 → 80)

bash
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80

场景2:转发到另一台服务器(公网8080 → 内网192.168.1.100:80)

bash
# DNAT:修改目标地址
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80

# SNAT:确保回程流量正确返回
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.100 --dport 80 -j MASQUERADE

# FORWARD链放行
iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT

场景3:UDP端口转发

bash
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.1.100:53
iptables -t nat -A POSTROUTING -p udp -d 192.168.1.100 --dport 53 -j MASQUERADE

场景4:内网共享上网(SNAT)

bash
# 动态IP场景(推荐用MASQUERADE)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# 固定公网IP场景
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 你的公网IP

三、规则管理命令

 
 
操作 命令
查看NAT规则 iptables -t nat -L -n -v --line-numbers
查看FORWARD规则 iptables -L FORWARD -n -v
删除规则(按行号) iptables -t nat -D PREROUTING 1
保存规则(Ubuntu/Debian) iptables-save > /etc/iptables/rules.v4
保存规则(CentOS/RHEL) service iptables save
 


四、专用转发工具:80km无痕网关

除了 iptables,80km无痕网关(曾用名:80KM端口流量转发程序) 是一款更现代化的转发工具,具备配置热加载、实时监控、更高并发等优势。

快速上手

json
// forwarder.json 配置
{
    "listen": "0.0.0.0:8080",
    "routers": [
        {"from": "0.0.0.0/0", "to": "192.168.1.100:80"},
        {"from": "10.0.0.0/8", "to": "192.168.1.101:22"}
    ]
}
bash
# 启动转发服务
80km-forwarder -config forwarder.json

相比 iptables,它无需记忆复杂的 NAT 表结构,配置文件直观,适合频繁调整转发规则的场景。


Linux 内网转发设置教程
Linux iptables 转发设置,Linux iptables 转发教程
Linux 端口转发完全指南
Linux 转发命令速查,Linux常见转发命令
Linux 地址转发完全指南:从内核参数到 NAT 实战
Linux NAT转发与网关实战:从iptables到高效流量转发程序
Win系统实现网络转发与端口映射:从 IPEnableRouter 到 RRAS 完整步骤
Win7 IP转发怎么开?3分钟让电脑变成“网络桥接器”
Windows网络转发到底能转哪些协议?为什么只支持TCP
win8 路由转发:Win8路由转发实用指南