我正在尝试 ssh 到我的 raspberry pi(注意:我知道连接有效,我已经在非防火墙网络上测试过它)。
我在学校防火墙后面,但端口 22 是开放的。
我的 pi 使用端口 2000(出于模糊目的)。
我该怎么做?创建 vpn(openvpn?)会是更简单的解决方案吗?
配置腻子到隧道是否是最好的决定以及我该如何去做?
另外我是新手,如果我做错了什么,请告诉我
答案1
如果我理解你的问题,你正在尝试通过学校防火墙关闭的 2000 端口 ssh 到你的 Raspberry Pi,并且只允许使用 ssh 端口(TCP 22)。你有两个选择:
- 将您的 Raspberry Pi 监听端口更改为 22。
- 在您的家庭网络中设置一台笔记本电脑/台式机/虚拟机(可以通过端口 2000 访问您的 Raspberry Pi),并使用常规 ssh 服务(端口 TCP 22),然后:
- 将其用作“代理”,通过 SSH 连接到此机器,然后通过 SSH 连接到你的 Raspberry Pi
- 使用以下命令直接通过新创建的机器进行 SSH:
ssh -L 9999:Raspberry_Pi_LOCAL_IP:2000 VM_PUBLIC_IP_ADDRESS
例如,如果 VM_PUBLIC_IP_ADDRESS 是 151.101.129.69(以 superuser.com 的 IP 地址为例)并且您的 Raspberry_Pi_LOCAL_IP 是 192.168.1.10,则命令将如下所示:
ssh -L 9999:192.168.1.10:2000 151.101.129.69
- 然后你需要做的就是通过 ssh 连接到本地主机的 9999 端口
ssh 用户@localhost -p 9999
或者直接使用 Putty,但请确保将端口更改为 9999,并将主机名/IP 更改为 localhost 或 127.0.0.1
答案2
您可以在互联网路由器(在家中)上进行端口转发,从端口 22(在您的公共 IP 地址上)到端口 2000(在您的 Raspberry Pi IP 地址上)。
这样,当您从学校 ssh(使用端口 22)时,您将使用服务提供商分配的路由器的公共 IP 地址。路由器会将端口 22 上收到的数据包转发到端口 2000 上的 Raspberry Pi IP 地址。