仅通过 SSH 隧道传输 VNC vino

仅通过 SSH 隧道传输 VNC vino

我已经搜索了好几个小时,还是没能找到答案。

我正在尝试实现以下目标:

客户雷米纳+ SSH 隧道

服务器鲁本图+openssh服务器(公钥认证)+葡萄酒通过 ssh 隧道的服务器仅有的+ 允许客户端仅打开 1 个端口 (vnc 端口)

到目前为止,我似乎可以通过两种方式(使用 ssh 隧道和不使用 ssh 隧道)连接到我的服务器,这是不可接受的。

跑步葡萄酒偏好GUI 对我没什么帮助 :s

所以我的问题基本上是:

  • “我如何阻止服务器上打开的任何端口和仅单个 SSH 端口(22)并允许客户端通过特定端口通过 SSH 隧道传输 VNC(如果有意义的话)?”
  • 不允许其他类型的 VNC 连接

PS 我计划将路由器上的 22 端口转发到我的服务器并且只允许 SSH 连接。

答案1

据我所知,vino-preferencesGUI 不包含它,但我相信你正在寻找的参数是network-interface

gsettings get org.gnome.Vino network-interface

如果未设置(即上述命令返回空字符串''),则 vino-server 会监听所有可用接口,而如果设置为lo

gsettings set org.gnome.Vino network-interface 'lo'

那么它将只监听lolocalhost)接口。

您还可以使用 GUI dconf-editor,其中参数列在org -> gnome -> desktop -> remote-access项目下列出。


您可以使用以下方式确认服务器正在监听所需的接口,netstat例如默认接口是

$ sudo netstat -nlp | grep ':5900'
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      10927/vino-server
tcp6       0      0 :::5900                 :::*                    LISTEN      10927/vino-server

(监听所有可用接口);然后

$ gsettings set org.gnome.Vino network-interface 'lo'

您应该看到它只在本地主机接口上监听:

$ sudo netstat -nlp | grep ':5900'
tcp        0      0 127.0.0.1:5900          0.0.0.0:*               LISTEN      10927/vino-server
tcp6       0      0 ::1:5900                :::*                    LISTEN      10927/vino-server

或者(或另外),您可以使用iptablesufw关闭端口 - 默认情况下,它是端口 5900 + 显示号码。

相关内容