一句话介绍:
使win10远程桌面连接ubuntu18.0.4。
环境描述:
1 局域网PC,整个局域网只有一个公网IP,系统为ubuntu18.0.4, 没有修改路由器端口映射的权限。
2 家用笔记本,win10系统。
3 VPS(百度云服务器BCC)系统为Ubuntu18.0.4,有固定IP。
两种方法,一种需要VPS,一种需要花生壳
方法一,通过VPS进行端口转发:
1 VPS准备:
1.1购买VPS
任意平台均可(注意是云服务器,不是云虚拟主机)。
1.2VPS配置
user@ubuntu:~$ sudo apt install openssh-server #安装ssh-server
user@ubuntu:/$ sudo vim /etc/ssh/sshd_config #配置sshd
#将下面这三项改为yes,且前面#号去掉
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
保存并重启sshd
user@ubuntu:/$ systemctl restart sshd #重启sshd
user@ubuntu:/$ sudo systemctl status sshd #查看sshd
[sudo] password for user:
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
Active: active (running) since Mon 2020-02-10 19:58:46 PST; 14s ago
Process: 15827 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 15829 (sshd)
Tasks: 1 (limit: 2295)
CGroup: /system.slice/ssh.service
└─15829 /usr/sbin/sshd -D
2内网Ubuntu18.0.4配置
2.1 打开桌面共享;
具体方法参考https://www.cnblogs.com/happystudyeveryday/p/10246723.html
2.2建立ssh反向隧道
输入命令:
ssh -CqTfnN -R 12222:127.0.0.1:5900 root@VPS IP
ssh反向隧道已建立
12222为VPS端口,127.0.0.1本地 ,5900端口
Note(超级重要):
当进行远程桌面连接时,ssh反向隧道的建立不应用autossh,直接用ssh。若用autossh会导致5900端口被占用,VNC-SEVER进程无法监听5900端口,导致远程桌面连接失败。这是血的教训!!!!
netstat -nplt | grep 5900 #查看5900端口是否被占用
kill PID #若被占用,kill it
ssh 命令各参数含义
-1:强制使用ssh协议版本1;
-2:强制使用ssh协议版本2;
-4:强制使用IPv4地址;
-6:强制使用IPv6地址;
-A:开启认证代理连接转发功能;
-a:关闭认证代理连接转发功能;
-b:使用本机指定地址作为对应连接的源ip地址;
-C:请求压缩所有数据;
-F:指定ssh指令的配置文件;
-f:后台执行ssh指令;
-g:允许远程主机连接主机的转发端口;
-i:指定身份文件;
-l:指定连接远程服务器登录用户名;
-N:不执行远程指令;
-o:指定配置选项;
-p:指定远程服务器上的端口;
-q:静默模式;
-X:开启X11转发功能;
-x:关闭X11转发功能;
-y:开启信任X11转发功能。
3 建立远程桌面连接
打开VNC viewer ---->File ------>New Connection
在VPNsever 处填写VPS IP : VPS端口号
输入密码即可
方法二 花生壳
花生壳只是建立隧道的工具罢了,方法一会了,这个自然会。
2020年5月3日更新:
可以利用目的主机建立到vps上的ssh反向隧道,直接建立本机到目的机的隧道