Eli*_*Eli 22 iptables port-forwarding
目前我有一个设置,由于配置需要永远修复,我有一个只能通过 ipv4 访问的服务器。但是,我也有一台可以通过 ipv6 访问的服务器。我想知道是否可以使用 iptables 将某个端口上的 ipv6 流量从一台服务器转发到另一台使用 ipv4 流量的服务器。
mgo*_*ven 23
IPtables 目前无法做到这一点,因此您需要一个用户空间进程来代理连接。socat是一个合适的工具:
socat TCP6-LISTEN:1234,fork TCP4:1.2.3.4:1234
Run Code Online (Sandbox Code Playgroud)
Léo*_*Lam 12
正如对您的问题的评论中所指出的,即使在 3 年后,NAT64 还远未准备好。
但是,您可以尝试6tunnel
,正如困惑所建议的那样。
幸运的是,它存在于 Debian 和 Ubuntu 存储库中,因此您可以使用sudo apt-get install 6tunnel
. 如果您使用的是其他系统,则必须从source构建它。
从源代码构建并不难,只需运行一些命令(以 root 身份):
git clone https://github.com/wojtekka/6tunnel && cd 6tunnel && ./autogen.sh && make && make install
Run Code Online (Sandbox Code Playgroud)
这是它的语法,简化了:
6tunnel [-4|-6] [-l local-host] original-port destination-host destination-port
Run Code Online (Sandbox Code Playgroud)
[-4|-6]
是可选的,您可以指定是否将绑定(听)在IPv4或IPv6(分别)。-l
也是可选的。它允许您选择要绑定的地址(IPv4 或 IPv6)。例如,如果要允许通过 IPv6 访问仅侦听端口 1337 的 IPv4 服务器,请使用:
6tunnel -6 1337 localhost 1337
Run Code Online (Sandbox Code Playgroud)
上述命令将在 IPv6 上侦听端口 1337,并通过 IPv4 将流量转发到同一台机器上的端口 1337。然后它会在后台运行,所以你不必担心它。
实际上,您应该设置一个 cron 作业以确保它仍在运行。为您提供方便6tunnel
的示例!在启动时运行它也不应该是一个坏主意。
有关更多文档,请运行6tunnel -h
或man 6tunnel
。
的最新版本xinetd
还可以侦听 IPv6,然后将连接转发到 IPv4 地址。
在端口 3389 上侦听 IPv6 连接并将它们转发到内部 IPv4 地址的端口 3389 的示例配置:
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
}
Run Code Online (Sandbox Code Playgroud)
这在更受限制的环境xinetd
中可能很有用,因为它可能与您的基本系统一起安装或在批准的供应商存储库中可用。
更多的是为了人们找到这个页面而不是OP(我来到这里寻找IPv4(Twisted)应用程序的IPv6连接解决方案),一种可能性是应用程序6tunnel,侦听IPv6并将请求转发到另一个接口,港口。
归档时间: |
|
查看次数: |
32891 次 |
最近记录: |