我已经搜索了好几个小时,还是没能找到答案。
我正在尝试实现以下目标:
客户:雷米纳+ SSH 隧道
服务器:鲁本图+openssh服务器(公钥认证)+葡萄酒通过 ssh 隧道的服务器仅有的+ 允许客户端仅打开 1 个端口 (vnc 端口)
到目前为止,我似乎可以通过两种方式(使用 ssh 隧道和不使用 ssh 隧道)连接到我的服务器,这是不可接受的。
跑步葡萄酒偏好GUI 对我没什么帮助 :s
所以我的问题基本上是:
- “我如何阻止服务器上打开的任何端口和仅单个 SSH 端口(22)并允许客户端通过特定端口通过 SSH 隧道传输 VNC(如果有意义的话)?”
- 不允许其他类型的 VNC 连接
PS 我计划将路由器上的 22 端口转发到我的服务器并且只允许 SSH 连接。
答案1
据我所知,vino-preferences
GUI 不包含它,但我相信你正在寻找的参数是network-interface
gsettings get org.gnome.Vino network-interface
如果未设置(即上述命令返回空字符串''
),则 vino-server 会监听所有可用接口,而如果设置为lo
gsettings set org.gnome.Vino network-interface 'lo'
那么它将只监听lo
(localhost
)接口。
您还可以使用 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
或者(或另外),您可以使用iptables
或ufw
关闭端口 - 默认情况下,它是端口 5900 + 显示号码。