假设我在公司有一台 Linux 工作站,位于防火墙后面。因此,即使我可能在其上设置了远程访问服务器(例如最出色的 NoMachine NX Server),我也无法从家里访问它。
我的家庭网络恰好有一台 Linux 服务器。我是否可以从工作地点通过 ssh 连接到家里的 Linux 机器并设置隧道,这样我一到家,就可以运行 NX 客户端,将其指向我家里的 Linux 机器上的某个端口(例如 9000),然后通过隧道将其转发到我工作地点 Linux 机器上的端口 22?我该如何设置?
答案1
从办公室的机器创建一个到家里运行 ssh 的机器的隧道:
randolf@workserver:~$ ssh -vvv randolf@myhomeserver -R 44455:localhost:22
这会将远程端口 44455 从您的家庭服务器转发到您的工作机器上的端口 22(或 ssh 正在监听的任何端口)。
在家里检查 44455 上是否有人在监听
randolf@homeserver:~$ netstat -an | grep 44455
tcp 0 0 127.0.0.1:44455 0.0.0.0:* LISTEN
接下来,从家里连接到你的工作机器,从你的家庭服务器:
randolf@homeserver:~$ ssh localhost -p 44455
Password: ******
从那里您应该通过隧道连接到您的工作机器。
答案2
您可以使用防火墙设置一些端口转发,或者如果防火墙对您可以执行的操作有某些限制,甚至可以使用“反弹”之类的工具来重新重定向端口,但如果我是您,我会这样做:
安装出色的免费开源用户空间 OpenVPN 软件。将目标服务器设置为 OpenVPN 客户端(并配置无限连接重试),将家庭 Linux 服务器设置为 OpenVPN 服务器。这样,运行 OpenVPN 客户端的目标服务器将在您的家庭 Linux 服务器运行并连接到互联网时连接到它 - 通过此 VPN 连接,您可以完全访问您的工作/目标服务器(运行 OpenVPN 客户端)。
OpenVPN(功能齐全的免费、开源、用户空间 VPN 解决方案)
http://www.openvpn.net/index.php/open-source.html
答案3
如何通过端口 3389 连接到 Linux 机器(RHEL5)
不幸的是,许多防火墙会封锁 22 端口,隧道可能会打开安全漏洞,因此最好的方法是将 ssh 和 NX 设置为监听 3389 端口,而不是标准的 22 端口,这可能会让大多数黑客感到困惑
配置 OpenBSD 监听端口 3389
vim /etc/ssh/sshd_config
Port 3389
service sshd restart
将适用于 Windows 的 NX 客户端下载到 RHEL ftp 站点
wget http://64.34.173.142/download/3.5.0/Windows/nxclient-3.5.0-9.exe
下载适用于 Linux 的 NX 免费版
wget http://64.34.173.142/download/3.5.0/Linux/nxclient-3.5.0-7.i386.rpm
wget http://64.34.173.142/download/3.5.0/Linux/nxnode-3.5.0-9.i386.rpm
wget http://64.34.173.142/download/3.5.0/Linux/FE/nxserver-3.5.0-11.i386.rpm
以 root 身份 - 按以下顺序安装 NX
rpm –ivh nxclient-3.5.0-7.i386.rpm
rpm –ivh nxnode-3.5.0-9.i386.rpm
rpm –ivh nxserver-3.5.0-11.i386.rpm
配置 NX 的端口 3389
vim /usr/NX/etc /node.cfg
#
# Specify the TCP port where the NX node SSHD daemon is running.
#
SSHDPort = "3389"
vim /usr/NX/etc /server.cfg
#
# Specify the TCP port where the NX server SSHD daemon is running.
#
SSHDPort = "3389"
service nxsensor restart
nxserver --daemon restart