![通过 RPI ssh 在 Mac 上设置 vnc](https://linux22.com/image/1446043/%E9%80%9A%E8%BF%87%20RPI%20ssh%20%E5%9C%A8%20Mac%20%E4%B8%8A%E8%AE%BE%E7%BD%AE%20vnc.png)
我目前不在家,我想访问我家已开机的 iMac。我离开前设置了 Mac 屏幕共享,但出了点问题,我无法从 MacBook 访问它。我可以通过 Raspberry Pi 上的 ssh 访问我的家庭网络。我想知道是否有任何方法可以通过 RPI 访问我的 iMac 并在这台 iMac 上设置 ftp 或 vnc 服务器。例如,是否有任何 Linux 软件可以让我通过 VNC 访问同一网络上的另一个客户端。如果可能的话,我可以尝试从我当前的位置访问 RPI。
编辑:在@baf 评论之后,这里是我在 iMac 上开放的所有端口:
PORT STATE SERVICE
3/tcp filtered compressnet
22/tcp open ssh
88/tcp open kerberos-sec
222/tcp filtered rsh-spx
513/tcp filtered login
898/tcp filtered sun-manageconsole
1055/tcp filtered ansyslmd
1083/tcp filtered ansoft-lm-1
1455/tcp filtered esl-lm
2725/tcp filtered msolap-ptp2
3370/tcp filtered satvid-datalnk
3801/tcp filtered ibm-mgr
5900/tcp open vnc
8873/tcp filtered dxspider
9001/tcp filtered tor-orport
9110/tcp filtered unknown
10628/tcp filtered unknown
13782/tcp filtered netbackup
20221/tcp filtered unknown
31038/tcp filtered unknown
32772/tcp filtered sometimes-rpc7
32776/tcp filtered sometimes-rpc15
40911/tcp filtered unknown
44176/tcp filtered unknown
编辑:在 baf 回答之后,我更新了我当前所做的事情:我执行该命令:ssh -L 5999:192.168.1.10:5900 pi_host_over_internet
所以如果我理解正确的话,我的 iMac 的 VNC 端口可以通过 Pi 的端口 5999 访问。现在要从我当前的位置连接到它,我需要使用 VNC 客户端连接到“pi_host_over_internet:5999”。我试过了,但显然,它不起作用,因为端口 5999 没有转发到路由器上的 Pi。
编辑:澄清我的设置:
我现在所拥有的东西以及我所在的地方(英国):
MacBook connected to a public WiFi
我家里(法国)有什么:
Imac, local ip:`192.169.1.10`, port 5900 listenin to VNC, port 22 listening to SSH
RPI, local ip:`192.168.1.12`, port 22 listening to SSH
router accessible at `mydomain.com`, port 22 forwarded to RPI@`192,168.1.12:22`
编辑:这是我在@baf 回答后得到的结果:
我会接受任何建议,所以请随意提出任何建议。
答案1
您应该在本地机器上(网络之外)使用以下参数运行 ssh 客户端:
ssh -L 5999:imac_host:5900 pi_host
我选择 5999 作为本地端口,但它可以是任何端口。你只需确保它未被任何本地服务使用。用 IP 地址替换imac_host
和。pi_host
当您使用给定的命令成功连接时,vnc
端口 5900imac_host
将被转发到您本地机器端口 5999。
接下来,您需要在本地机器上配置 vnc 客户端来连接localhost
端口5999
(在给定端口连接到自身)。
怎么运行的
VNC
您 iMac 上的服务器正在监听端口5900
以接收传入连接。VNC
客户端可以从本地网络中的其他计算机连接到此端口。由于您无法直接访问5900
iMac 上的端口,因此您正在使用ssh
隧道将计算机通过 Internet 通过路由器连接到本地网络中的 iMac。
ssh
打开5999
当前计算机上的端口(可以是任何其他端口)并在此端口上侦听连接。当您连接到此端口时,会将ssh
连接(通过 ssh 端口)隧道传输22
到您的路由器,然后从路由器通过端口与 iMac 建立连接5900
。这称为端口转发。
您的 iMac 也启用了 ssh。如果您不需要 vnc,而只想复制文件,则可以使用 scp。为了简单起见,您可以尝试不使用任何端口转发。只需将文件从 复制到 即可imac_host
。pi_host
从 Pi 控制台运行:
scp username@imac_host:path_to_file destination_file`
这会将path_to_file
文件复制到destination_file
Pi 上的当前文件夹中。然后您可以重复此步骤并将文件从 Pi 复制到本地计算机。