将 SSH -L 隧道的端点(在本地主机)转发到另一台机器

将 SSH -L 隧道的端点(在本地主机)转发到另一台机器

即使经过长时间的搜索和尝试,我仍然无法解决以下难题:

Client A --------------------------> Server B (172.26.15.15/24)
  ssh -L 4321:localhost:4321         Server C (172.26.15.16/24)
  • 客户端“A”有一个 ssh 隧道,将 a:4321 转发到 b (localhost):4321
  • “服务器 B”应将 localhost:4321 上收到的所有数据包转发到“服务器 C:4321”

这可以做到iptables吗?如果可以,有人可以告诉我怎么做吗?

答案1

您正在试图使它变得比实际更复杂。输入服务器 C 的 IP,而不是 localhost。

ssh -L 4321:172.26.15.16:4321

选项-L[localaddress:]localport:remoteaddress:remoteport

  • [localaddress:](可选,指定 SSH 将绑定到的本地 IP。默认情况下,它将绑定到所有 IP。
  • localport SSH 将隧道绑定到的本地 TCP 端口
  • remotehost - 可从 SSH 服务器访问并由 SSH 服务器解析的 IP 地址或 DNS。
  • 远程端口——隧道另一端的 TCP 端口。

答案2

可以使用端口转发守护进程(例如 xinetd)转发源自本地主机并目的地为本地主机的流量。

我解决了我的问题:

/etc/xinetd.conf:

service local_forward
{
flags = IPv4
socket_type = stream
wait = no
user = root
redirect = 172.26.15.16 4321
}

在 /etc/服务中:

local_forward   4321/tcp

相关内容