使用iptables转发ipv6到ipv4?

目前我有一个设置,由于需要永久修复的configuration,我有一个服务器只能通过ipv4访问。 但是,我也有一个可以通过ipv6访问的服务器。 我想知道是否可以使用iptables将某个端口上的ipv6stream量从一台服务器转发到另一台使用ipv4stream量的服务器。

IPtables目前不能做到这一点,所以你需要一个用户空间进程来代理连接。 socat是一个合适的工具:

socat TCP6-LISTEN:1234,fork TCP4:1.2.3.4:1234 

正如你对这个问题的评论所指出的那样,即使3年之后,NAT64也还没有做好准备。

然而,你可以尝试6 6tunnel ,正如困惑所暗示的那样。

幸运的是,它存在于Debian和Ubuntu存储库中,所以你可以使用sudo apt-get install 6tunnel很容易地安装它。 如果您使用的是其他系统,则必须从源代码构build。

从源代码构build并不难,只是运行一些命令(以root身份):

 git clone https://github.com/wojtekka/6tunnel && cd 6tunnel && ./autogen.sh && make && make install 

这是它的语法,简化了:

 6tunnel [-4|-6] [-l local-host] original-port destination-host destination-port 
  • [-4|-6]是可选的,可以指定是否绑定(监听)IPv4或IPv6(分别)。
  • -l也是可选的。 它允许您select要绑定的地址(IPv4或IPv6)。
  • 原始端口是您要绑定的端口。
  • 目标主机是您将stream量转发到的地方。 它可以在任何地方:本地主机,或者你的networking或互联网上的其他地方。
  • 目标端口是目标主机上的端口,它将接收您转发的stream量。

例如,如果要允许仅监听端口1337的仅IPv4服务器通过IPv6访问,请使用:

 6tunnel -6 1337 localhost 1337 

以上命令将监听IPv6上的端口1337,并通过IPv4将stream量转发到同一台机器上的端口1337。 它会在后台运行,所以你不必担心。

其实,你应该设置一个cron工作来确保它仍然在运行。 6tunnel为您的便利提供了一个例子 ! 在启动时运行它也不是一个坏主意。

有关更多文档,请运行6tunnel -hman 6tunnel

xinetd最新版本也可以监听IPv6,然后将连接转发到IPv4地址。

在端口3389上侦听IPv6连接并将其转发到内部IPv4地址的端口3389的示例configuration:

 service rdp_port_forward { flags = IPv6 disable = no type = UNLISTED socket_type = stream protocol = tcp user = nobody wait = no redirect = 10.187.20.42 3389 port = 3389 } 

这可能在更多受限制的环境中很有用,因为xinetd可能与您的基本系统一起安装,或者在批准的供应商存储库中可用。

更多的是为了人们寻找这个页面的好处,而不是必然的(我来这里寻找一个IPv4(Twisted)应用程序的IPv6连接的解决scheme),一种可能性是应用程序6tunnel,监听IPv6并将请求转发给另一个接口,港口。

我想评论狮子座答复和upvote,但我没有足够的声誉。 首先:非常感谢Leo Lam!

对于任何人来这个线程:我的ISP使用双栈精简版将我的连接从IPv4更改为IPv6,这意味着我没有自己的IPv4地址了。 这是一个问题,因为我想从任何不支持IPv6的任何访问我的IP摄像机。 为了解决这个问题,我试了下

  1. 在我的路由器的端口99启用IPv6转发到我的Ubuntu机器。
  2. Ubuntu机器(家庭networking): sudo 6tunnel -6 99 192.168.178.35 80
  3. 具有静态IPv4和IPv6地址的vServer Debian: sudo 6tunnel -4 99 IPV6PREFIXROUTER:IPV6INTERFACEIDUUBUNTUMACHINE 99
  4. vServer Debian:在iptables的端口99允许传入的TCP连接

ipv6前缀在我的路由器中表示,接口id在IPv6转发过程中映射。

现在,我可以从任何地方使用vServer域example.com:99访问摄像机。完美! 我计划要么得到一个树莓将完成这项工作或香蕉pi m3为其他任务也。