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 表结构,配置文件直观,适合频繁调整转发规则的场景。


nat123映射怎么用?超详细步骤,外网访问内网轻松搞定
nat123域名怎么用?两种方式轻松搞定
nat123怎么用?简单几步实现内网穿透
内网穿透工具对比:nat123、花生壳与轻量新选择
远程访问内网很简单:用对工具,一“箭”穿透
ngrok下载完全指南:从入门到获取客户端
内网远程桌面软件:穿透局域网边界的数字窗口
从外网远程访问内网服务器的完整方案
Windows Server 2008端口转发完全教程:netsh命令添加/查看/删除/重置
为什么三层交换机转发比Linux服务器快?转发表硬件加速的秘密