![复制/重新路由端口至另一个端口](https://linux22.com/image/1315231/%E5%A4%8D%E5%88%B6%2F%E9%87%8D%E6%96%B0%E8%B7%AF%E7%94%B1%E7%AB%AF%E5%8F%A3%E8%87%B3%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%AB%AF%E5%8F%A3.png)
我正在运行 Windows Server 2008 R2 计算机,想知道是否有任何软件可以允许我打开端口 3307 并将发送到该端口的任何数据路由到端口 3306。例如,如果我从阻止出站端口 3306 的网络连接,是否有任何东西可以允许我连接到端口 3307 并在本地(在 Windows 计算机上)将数据重新路由到本地 3306 端口?顺便说一句,这是针对 MySQL 服务器的。谢谢!
答案1
您可以使用索卡特为此。有一个Windows 端口基于Cygwin。
这例子部分有这个
socat -d -d -lmlocal2 \
TCP4-LISTEN:80,bind=myaddr1,su=nobody,fork,range=10.0.0.0/8,reuseaddr \
TCP4:www.domain.org:80,bind=myaddr2
TCP 端口转发器,每一端都绑定到另一个本地 IP 地址(绑定)。此示例通过在每个 accept() 之后分叉一个新进程来处理几乎任意数量的并行或连续连接。它通过在分叉后对用户 nobody 进行审核来提供一点安全性;它只允许来自私有 10 网络(范围)的连接;由于重用地址,它允许在主进程终止后立即重新启动,即使某些子套接字未完全关闭。使用 -lmlocal2,socat 会将日志记录到 stderr,直到成功到达 accept 循环。进一步的日志记录将定向到具有功能 local2 的 syslog。
虽然此示例针对的是端口 80(HTTP),但您可以使用 socat 为几乎任何协议创建双向中继。
您会注意到它显示了它的 Linux/Unix 起源。我不知道 Windows 端口在 Windows 上运行得如何,或者某些选项是否不适合 Windows。我会尝试一下。
对于生产系统我会尝试
- 让 MySQL 监听多个端口号(目前还不可能)
- 在路由器中使用端口转换?
- 在 Linux 机器上使用 socat 进行端口转换中继。并进行测试直至破坏。
(呃)