首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用iptables重写源代码

用iptables重写源代码
EN

Server Fault用户
提问于 2014-10-24 20:10:53
回答 1查看 228关注 0票数 -1

我将把静态IP从VPS路由到我的OpenWRT路由器。它们与OpenVPN连接--服务器是10.8.0.1,路由器是10.8.0.6。例如,我的公共IP是1.1.1.1,所有通信量都应该转到10.8.0.6,但是我的路由器必须将答案发送给服务器,因为我的OpenWRT的默认路由是我的adsl调制解调器。所以我只想把流量路由到1.1.1.1,然后通过VPN给出这些包的答案。

我尝试过几种防火墙配置,主要是这样的:NAT是否在数据包中重写源IP? --但它不起作用。使用我的主路由器上的tcpdump,原来的发件人IP是可见的。所有的流量首先到VPS,它有两个IP。这是一个KVM盒,我有完全的根访问权,甚至可以使用iptables。首先,通过vpn将所有流量路由到1.1.1.1到我的主路由器:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -d 1.1.1.1/32 -j DNAT --to-destination 10.8.0.6

到目前为止,这是可行的;来自另一台服务器的1.1.1.1的点击将在我的主路由器上到达tun0。但问题是,ICMP应答通过eth0和ADSL调制解调器离开了我的路由器,因为ping的发送方(84.200.34.2XX)不适合任何路由,因此采用了默认路由。我能做什么,任何包的源到10.8.0.6将被重写到服务器IP,10.8.0.1,而服务器将把每个包发送到原始源?

tl;dr:

  • 流量从84.200.34.2XX到1.1.1.1
  • 我的VPS将包转发到OpenVPN中的路由器(10.8.0.6)
  • 我的路由器响应原始源IP (84.200.34.2XX),但通过ADSL调制解调器的默认路由,ADSL调制解调器有一个完全不同的外部IP

因此,我希望我的主路由器上的所有传入流量不是来自原始源IP,而是来自OpenVPN服务器(10.8.0.1),因为OpenWRT有一个路由,可以通过VPN路由这些包的答案。我的VPS必须再次编辑anwer包,以便源IP为1.1.1.1。我不能通过VPN路由我的所有私有通信量,因为我对VPS有一个流量限制。

有谁能解决这样的问题吗?我整个晚上都在尝试(从4个小时开始),但没有成功。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2014-10-25 09:59:07

然而,以下是为我所做的:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -d 1.1.1.1/32 -j DNAT --to-destination 10.8.0.6
iptables -t nat -A POSTROUTING -o tun0 -j SNAT --to-source 10.8.0.1
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/639516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档