ubuntu搭建vnc实现windows端控制linux桌面
vnc-server和vnc4server
ubuntu18.04
为了实现远程监控服务器,我决定利用vnc端口配合路由器的端口转发,在大型局域网内进行服务器管理,包括windows和linux,于是我就百度搜索了vncserver,得到了一些方法
sudo apt-get install vnc-server
这个是安装不了的,为什么呢,反正就是安装不了
sudo apt-get update
sudo apt-get upgrade
输入之后再进行上边的指令,也是不行的,vnc4server同理,就是失败,纳闷得我直接把ubuntu18.04重装了一次,换成ubuntu20.04(大概是这个版本吧)
ubuntu20.04
之前安装的话,终端会告诉我,这个软件需要很多依赖包,我查了一下,原因大概是安装什么软件不彻底的话,就会引起这种问题,那我要是去卸载呢,系统告诉我,我没有安装这个玩意,那我要是安装呢,也是装不了那个依赖包的,我不知道为啥,毕竟我只是个小白啊!于是折腾了几天的我终于放弃了
x11vnc
安装
安装很简单,为什么选择这个vnc,因为你用
sudo apt-cache search vncserver
就会出现很多vnc软件,只有这个是带有中文解释的
据说ubuntu软件中心也有这个东西,叫做x11vnc服务器,怎么下载随便你
sudo apt-get update
sudo apt-get install x11vnc
设置登录密码
安装完成,接下来设置密码,这是是登陆密码
sudo x11vnc -storepasswd
这里是有引导创建的,第一次输入和再次输入以及确认
设置一个通用密码文件/etc/x11vnc.pass,然后复制到桌面的.vnc下的passwd里去
sudo x11vnc -storepasswd in /etc/x11vnc.pass
sudo cp ~/.vnc/passwd /etc/x11vnc.pass
~/.vnc/passwd这个密码文件我用gedit打开是一堆中文乱码,管他的,反正能用,总之这个文件就是x11vnc通用的密码存储位置
启用服务
启用指令很长,内容分为如下:
- -rfbport:指定启动端口
- -rfbauth:指定密码文件路径
- -o:日志文件路径
- -forever:一直连接
方法一:失败
sudo /usr/bin/x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900
说是这么说,我就没成功启用过,每次netstat -aptn都没有5900端口
方法二
x11vnc -forever -shared
这我盲猜不行,因为一般会报错说没有x11vnc这个指令
方法三
x11vnc -forever -shared -rfbauth ~/.vnc/passwd
猜不行,理由同上
方法四:失败
sudo x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/xx/.vnc/passwd -rfbport 5900 -shared
我觉得这个应该可以,我用cd到x11vnc文件夹下用service x11vnc start启动,然后service x11vnc status查看状态时也会出现这一行,但是netstat -aptn仍然没有5900端口
方法源址
方法五:失败
x11vnc -rfbport 5903 -rfbauth ~/.vnc/passwd -display :0 -forever -bg -repeat -nowf -o ~/.vnc/x11vnc.log
也许也能试试这个吧
方法源址
方法六:成功
cd到/bin里去,然后输入命令
sudo service x11vnc start
简单粗暴,我自己想的
检测启动是否成功
查看所有开放的端口
sudo netstat -aptn
查看进程
ps -aux|grep x11vnc
netstat -nap|grep 5903
端口5903就灵活查看了
然后就是自启动的设置,目前我还没成功设置自启动
自启动设置
设置自启动一:失败
sudo gedit /etc/init/x11vnc.config
内容:
start on login-session-start
script
/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -noxrecord -noxfixes
-noxdamage -rfbauth /etc/x11vnc.pass -forever -bg -rfbport 5900 -o
/var/log/x11vnc.log
end script
结果:无法开机自启动
方法源地址
设置自启动二:失败
sudo gedit /etc/init/x11vnc.conf
内容:
start on login-session-start
script
x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900
end script
结果:无法开机自启动
方法源地址
设置自启动三:失败
sudo gedit /lib/systemd/system/x11vnc.service
内容:
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
指令:
有的有这个,看ubuntu版本吧
sudo mv x11vnc.service /etc/systemd/system/
下面的都要,不看版本
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service
sudo systemctl start x11vnc.service
结果:无法开机自启动,别说什么reboot之后,服务器reboot三次了,每次netstat -aptn都没有5900,已经看吐了
设置自启动四
sudo gedit /etc/init/x11vnc.conf
内容:
# description "Start x11vnc on system boot"
description "x11vnc"
start on runlevel [2345]
stop on runlevel [^2345]
console log
respawn
respawn limit 20 5
exec /usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth
/home/xx/.vnc/passwd -rfbport 5900 -shared
方法源址
我感觉可以用这个
处理服务指令
启动服务
systemctl start nginx.service
开机自启动
systemctl enable nginx.service
停止开机自启动
systemctl disable nginx.service
查看当前状态
systemctl status nginx.service
重新启动服务
systemctl restart nginx.service
查看所有已启动服务
systemctl list-units --type=service