【问题标题】:Forward network connection over ssh so that my outbound IP changes通过 ssh 转发网络连接,以便我的出站 IP 更改
【发布时间】:2023-04-01 01:39:01
【问题描述】:

服务,例如 FTP 服务器,只接受来自特定网络的连接,所有用户都将拥有相同的外部 IP 地址。

我想连接到此服务,但我目前不在允许的网络内。

我可以通过 ssh 访问网络内的服务器。

如何使用 ssh 将某个端口从我的本地机器,通过内部网络上的机器,到最终服务,以便任何打开正确端口的客户端都不会注意到任何差异?

【问题讨论】:

    标签: ssh-tunnel


    【解决方案1】:

    您可以使用以下命令创建通往特定网络的 SSH 隧道。 例如,假设您想访问计算机“mywebserver”(端口 80)上的 Web 服务。

    • 在 Linux 或 BSD 下,使用 OpenSSH,您可以使用以下命令行:

    ssh -f mysshserver -L 1234:mywebserver:80 -N

    • 在 Windows 下,您可以使用 MobaXterm,其中包含一个简单的图形化 ssh 隧道构建器

    这将在本地端口 1234 和端口 80 上的远程 Web 服务器之间打开一个 SSH 隧道。然后您可以打开 Web 浏览器并通过在地址栏中键入“http://localhost:1234”直接连接到您的 Web 服务器。

    【讨论】:

    • 已删除,我完全误解了答案。
    • 抱歉耽搁了这么久。不,我无法让它工作。这是一个显示我所做的 shell 脚本:REMOTE_PORT=8080; LOCAL_PORT=1234; REMOTE_URL=somedomain.com; ssh -f localhost -L ${LOCAL_PORT}:${REMOTE_URL}:${REMOTE_PORT} -N; curl http://localhost:${LOCAL_PORT} | wc -l; ssh ${REMOTE_URL} "curl http://localhost:${REMOTE_PORT}" | wc -l; I 除了两个 curls 以提供相同的输出,但第一个在 60 秒超时后一起失败,而第二个返回 29 行。运行本地 nmap 显示 ${LOCAL_PORT} 已打开。
    • 好的,问题是你写了“ssh -f localhost [...]”。您应该更改它并改用“ssh -f my_ssh_server_that_is_inside_the_same_network_as_web_server [...]”。你的命令的其余部分没问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多