通过 VNC 笔记本电脑从防火墙后面的端口隧道到远程服务器?

通过 VNC 笔记本电脑从防火墙后面的端口隧道到远程服务器?

我在 Linux 上有一个命令行应用程序,它使用特定端口与远程服务器通信。不幸的是,在工作中,该端口被阻止了。

我能够通过 VNC 将笔记本电脑连接到网络,并且笔记本电脑处于 WiFi 连接状态,该连接具有对远程服务器的端口访问权限。连接后,我能够从安全网络通过 ssh 连接到我的笔记本电脑。

有没有办法使用 ssh 端口隧道来解决这个问题?我可以将端口隧道连接到我的笔记本电脑,并让我的笔记本电脑充当防火墙网络和远程服务器之间的中间人吗?

Firewalled Linux Box ---ssh---> Mac OSX Laptop ---wifi---> Remote Server

一些细节:

  • 该命令行应用程序是 pip 的包装器。命令行没有指定代理或备用 IP/服务器供其使用的选项。
  • 据我了解,Pip 可能正在与许多不同的服务器通信,但最有可能是 pypi.python.org。
  • 根据我找到的资料,Pip 通过端口 3128 进行通信

我尝试了以下方法:

ssh -v -f -4 -N -L 3128:pypi.python.org:3128 [email protected]

(xx.x.xx.xxx 代表笔记本电脑的 IP 地址)

当它运行时,它会显示:

Remote connections from LOCALHOST:3128 forwarded to local address pypi.python.org:3128

在我看来这似乎有点倒退,但我是新手,所以谁知道呢!不管怎样,它似乎不起作用。仅供参考,作为测试,我使用:

telnet pypi.python.org 3128

检查防火墙保护的机器现在是否有访问权限,但是没有。

有什么想法吗?

答案1

一般注意事项:将安全网络与不安全网络绑定在一起并非严格意义上的技术问题。它可能会导致您被解雇或更糟的情况。获取上链许可。

技术方面:

去完成:

telnet pypi.python.org 3128

您将需要修改 /etc/hosts 文件以将“pypi.python.org”作为 localhosts 行的一部分。

就我而言,通过 ssh 隧道访问远程代码存储库,以便开发工具配置保持一致(始终引用相同的主机名),即使在远程时,我只需使用类似以下示例脚本来配置主机(可以通过 cron 或手动调用)。

在使用脚本之前,请备份您的 /etc/hosts 文件。

triggerport=1234
servname="myserver"
if [ `netstat -nl | grep :631 | wc -l ` -gt 0  ]
  then 
    awk -v serv=$servname  '/127.0.0.1/ {print $0 " " serv;next} 1' /etc/hosts > /etc/hosts
 else
    awk -v serv=$servname '{gsub(serv,"")};1' /etc/hosts > /etc/hosts
fi

正如我所说,您可以设置一个 cron 作业来触发此脚本并自动建立隧道主机名映射。我通常只在系统到系统的连接上这样做,这些连接将根据需要建立和关闭 ssh 隧道。

相关内容