iptables IP转发

本文详细介绍了如何将访问202.201.aaa.bbb的请求自动重定向到219.246.xxx.yyy,通过设置iptables规则实现IP映射与转发。同时提供了查看和删除非默认表规则的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有两台服务器:

  • A:219.246.xxx.yyy。这是一个内网地址,外网无法访问。
  • B:202.201.aaa.bbb。这是一个公网地址,它和xxx.lzu.edu.cn这个域名绑定。
两台服务器上都跑了一个HTTP的服务,他们之间可以互相访问。现在希望访问mmm.lzu.edu.cn时,能自动跳转到219.246.xxx.yyy上,因此可以做IP转发,或叫IP映射。来使所有发到202.201.aaa.bbb的请求包都通过它转发到219.246.xxx.yyy上。而所有应答的数据包,又能从219.246.xxx.yyy通过202.201.aaa.bbb回到请求者的地方。

# iptables -t nat -A PREROUTING -d 202.201.aaa.bbb -j DNAT --to-destination 219.246.xxx.yyy
# iptables -t nat -A POSTROUTING -d 219.246.xxx.yyy -j SNAT --to 202.201.aaa.bbb

另外,查看非默认表的规则需要指定表明:

# iptables -t nat -L

需要删除某条规则:

# iptables -t nat -L --line-number //列出规则的编号
# iptables -t nat -D PREROUTING 2 //删除PREROUTING中的第2条规则


### 配置 Ubuntu 系统中的 iptables 进行端口转发 为了在 Ubuntu 中使用 `iptables` 设置端口转发规则,需确认已具备 root 或者 sudo 权限访问权限,并且已经安装了 `iptables` 包[^1]。 如果尚未安装 `iptables` ,可以通过命令来完成安装: ```bash sudo apt-get update && sudo apt-get install iptables ``` 之后,在设置端口转发前,要确保内核允许 IP 转发功能。这可通过修改 `/proc/sys/net/ipv4/ip_forward` 文件实现,具体操作如下所示: ```bash echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward ``` 上述命令仅临时启用 IP 转发;若希望永久生效,则应编辑网络接口配置文件或创建一个自定义的 systemd service 单元文件以启动时自动加载此设置。 对于简单的端口转发需求,可以利用以下命令格式添加相应的 NAT 规则到 `iptables` 表中: ```bash sudo iptables -t nat -A PREROUTING -p tcp --dport 外部端口号 -j DNAT --to-destination 内部IP地址:内部服务监听端口 sudo iptables -t nat -A POSTROUTING -j MASQUERADE ``` 以上两条指令分别完成了目标地址转换 (DNAT) 和源地址伪装(MASQUERADE),从而实现了外部请求被重定向至指定内部主机的服务端口上处理并返回响应给客户端[^2]。 最后一步是要保存当前所有的 `iptables` 规则以便重启后仍然有效。不同版本可能有不同的方法存储这些规则,但对于大多数基于 Debian 的发行版来说,下面的方法适用: ```bash sudo sh -c "iptables-save > /etc/iptables/rules.v4" ``` 这样就成功设置了从某个公网端口映射到私网内的特定服务器上的应用所使用的本地端口连接路径[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值