有没有办法用 Putty 将办公室电脑(Windows)连接到家用电脑(Linux)。如果可以,请告诉我连接步骤。
答案1
设置家庭路由器以允许传入连接到您的家庭电脑(运行 Linux)的一个更简单的方法是将 DMZ 设置为您的电脑。
正如一些人提到的(也回顾一下):
- 登录您家里的路由器,并将 DMZ 设置为您的本地 PC 地址(目前我们假设您的 Linux PC IP 地址是 192.168.1.5)
- 在你的 Linux PC 上安装 openssh-server,并且不要忘记测试它(只需 ssh 192.168.1.5 即可测试你是否可以 ssh 到你刚刚安装的 openssh-server)
- 您需要知道您的 WAN IP 地址(当您在内部网络之外进行外部连接时,全世界都知道的 IP 地址) - 现在我们假设它是 8.8.8.8(请注意,这实际上是谷歌 DNS,但我在本例中使用它)
- 使用 PuTTY 或 SSH 从您的工作地点(或任何其他连接到互联网的 PC)连接到 8.8.8.8 端口 22。如果您使用 PuTTY(从您的办公室),那么它应该连接并要求您输入用户名/密码以登录到您的 Linux 机器。
- 检查你的 Linux Box 防火墙并确保它允许 ssh
一些可能的问题:
3 上面关于您的 WAN IP 的内容。如果您有静态 IP - 那么很可能它应该立即起作用。但如果没有,请仔细阅读。
3 上面关于您的 WAN IP 的信息。大多数家庭都配有动态 IP,这时您需要使用称为 DDNS(动态 DNS)的服务。DDNS 允许您创建一个名称(mypc.ddns.com 或类似的名称),并且您的 PC 将定期向 DDNS 报告您有一个新的 WAN IP。
- 你的 Linux Box 有自己的防火墙和阻止连接 - 我假设你知道如何更改此设置
- 您的路由器有自己的防火墙和阻止连接 - 您可以创建例外。但 DMZ 设置应覆盖路由器上的防火墙阻止,并让所有未知连接通过您的 Linux PC(或 DMZ 所设置的任何连接)。
- 您的 ISP 阻止了传入端口 22 的连接。...这时您就会感到有些不堪重负。但有一个解决方法。您的路由器应该允许端口转发。使用一个非公共端口(编一个数字...比如 12222,希望您的 ISP 不会阻止它),然后设置从端口 12222 到端口 22 的端口转发 - 所有这些都在您的路由器上完成。
确信其他人可以指出更多可能的问题,但现在先尝试一下,看看结果如何。
希望这可以帮助。
答案2
我知道有三种选择
转发端口
您可以设置端口转发每个您想要能够外部连接的设备。
- 这假设您知道您的外部 IP 地址。
对于每个设备,您可以分配一个任意的外部端口,该端口转发到端口 22 上的设备。(或者您可以对一个设备执行此操作,然后通过它连接到其他设备)
VPN
如果您使用本地网络建立 VPN,然后连接到该 VPN,您就可以访问网络上的所有内容。
反向 SSH
使用反向 SSH,您可以使用外部服务器,并设置监听 ssh 会话。然后,在外部服务器上,您可以连接到路由器后面的设备,而不会受到防火墙/端口转发等的干扰...这是我更喜欢的(因为我还没有设置 VPN),但我可以访问外部服务器。
您可以使用以下方式执行此操作:
家庭网络上的设备ssh -f -N -R 1234:localhost:22 [email protected]
1234
远程转发到设备的端口在哪里remote.server.example
是遥控器的地址
然后,在远程服务器上ssh -p 1234 -t device_user@localhost
答案3
请务必小心谨慎地在工作中执行此操作。IT 安全人员可能不喜欢这样做。请务必小心,确保此操作符合公司政策。
引用 Michael Lucas 的《SSH Mastery》第 83 页,https://www.tiltedwindmillpress.com/9.99 美元
但是,假设我的桌面位于一个高度安全的网络内。防火墙严格限制 Web 浏览并阻止所有文件传输。如果我可以使用 SSH 连接到网络外部的服务器,我可以将我的桌面流量转发到该外部服务器,以获得不受限制的互联网访问权限。我可以通过 SSH 上传机密文件,防火墙日志只会显示我建立了 SSH 连接。
隧道与安全策略
如果您是组织的安全官,端口转发可能会让您考虑完全阻止 SSH。我明白。我做过您的工作。您还应该知道,顽固的用户可以在 DNS、HTTP 或几乎任何其他服务或协议内隧道传输 SSH。完全阻止 SSH 的唯一方法是拒绝从网络内部到外部的所有 TCP 或 UDP 连接,使用智能检查流量的 Web 代理,并且不允许您的客户端即使通过代理访问公共 DNS。
您正在尝试的操作可能是可行的。大多数公司防火墙都会开放 80 端口以及其他端口。在 Windows 的命令提示符下执行此操作netstat -n
,您将获得具有开放端口的内部地址列表,例如
Active Connections
Proto Local Address Foreign Address State
TCP 10.96.144.75:49242 10.96.144.4:445 ESTABLISHED
:
: