linux iptables 端口转发
时间: 2023-07-26 22:06:14 浏览: 128
Linux iptables 可以通过端口转发实现对外网络访问。以下是实现端口转发的步骤:
1. 确认 iptables 服务是否已经启动
```
systemctl status iptables
```
2. 添加转发规则
```
iptables -t nat -A PREROUTING -p tcp --dport [原端口] -j DNAT --to-destination [目标IP]:[目标端口]
```
其中:
- `-t nat` 表示使用 NAT 表;
- `-A PREROUTING` 表示添加一个 PREROUTING 规则,即在数据包到达本机之前进行转发;
- `-p tcp` 表示该规则只对 TCP 协议生效;
- `--dport [原端口]` 表示监听的原始端口;
- `-j DNAT` 表示将数据包的目标地址和端口修改为指定的地址和端口;
- `--to-destination [目标IP]:[目标端口]` 表示修改后的目标地址和端口。
例如,将本机的 80 端口转发到 192.168.1.100 的 8080 端口:
```
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080
```
3. 启用 IP 转发
```
echo 1 > /proc/sys/net/ipv4/ip_forward
```
或者修改 `/etc/sysctl.conf` 文件,将 `net.ipv4.ip_forward` 的值修改为 `1`,然后执行以下命令使其生效:
```
sysctl -p
```
4. 保存 iptables 规则
```
service iptables save
```
以上步骤完成后,访问本机的 80 端口就会被转发到 192.168.1.100 的 8080 端口。
阅读全文