Linux更改源IP地址的传入流量
发布时间:2020-12-14 03:06:13 所属栏目:Linux 来源:网络整理
导读:我有一个在端口X上运行的Web服务.它从来没有打算在本地网络外运行,但我想通过Internet访问它.因此,我需要将所有传入数据包的源IP地址更改为本地数据包(例如,192.168.2.100).否则,Web服务会响应错误. 所以这就是我需要的: 如果我将带有公共IP X的家用计算机
我有一个在端口X上运行的Web服务.它从来没有打算在本地网络外运行,但我想通过Internet访问它.因此,我需要将所有传入数据包的源IP地址更改为本地数据包(例如,192.168.2.100).否则,Web服务会响应错误.
所以这就是我需要的: 如果我将带有公共IP X的家用计算机的数据包发送到服务器的公共IP地址Y,则需要将源IP地址(在这种情况下为X)更改为本地IP地址(例如,192.168.2.1) .之后,应将数据包传递到在端口80上的同一服务器上运行的Web应用程序. 解决方法
好的,现在我想我明白你想要什么.这是一个非常特殊的情况,与我之前发布的常规端口转发方法不同(见下文).以下规则应该这样做.
传入数据包上的SNAT 我假设如下: >< x>:服务器的公共IP 仅限SNAT 此规则将更改数据包的源地址: iptables -t nat -A INPUT -p tcp -d <x> --dport 80 -s <y> -j SNAT --to-source <b> 合并DNAT和SNAT: 这些规则将改变数据包的源和目标地址: iptables -t nat -A PREROUTING -i <if> -p tcp -d <x> --dport 80 -s <y> -j DNAT --to-destination <a>:80 iptables -t nat -A INPUT -p tcp -d <a> -s <y> --dport 80 -j SNAT --to-source <b> 不要忘记接受过滤表中的数据包. 通常的DNAT端口转发规则进行比较(无SNAT): iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.2.1:80 这会将外部接口(在此示例中为eth0)上的传入数据包上的端口8080转发到内部主机192.168.2.1到端口80.将接口,协议,dport和目标替换为您的设置. 此规则将接受修改的数据包: iptables -A FORWARD -i eth0 -p tcp -d 192.168.2.1 --dport 80 -j ACCEPT (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 『cURL』curl: (6) Could not resolve host无法解析主机地址
- linux – 增加磁盘大小 – 是否使用LVM?
- linux-kernel – 如何访问struct sk_buff成员?
- linux – libtool与64位目标平台上的32位版本的libstdc .so
- linux – python 3.3中的BadIDChoice RENDER和X上显示的tk
- linux – 如何强制dnsmasq仅为某些指定的域名使用上游dns服
- linux – 如何处理Varnish堆栈中的Cookie
- linux – 我的shell脚本在exec之后停止
- 在Linux上聚合NIC以仅接收连接
- 【Linux】没有网的情况下如何安装GCC