配置服务器虚拟机,采用客户端与web登录

记一下,必须关闭双方包括宿主机和服务器防火墙!!!!
或者添加规则

CentOS7
//临时关闭
# systemctl stop firewalld
//禁止开机启动
# systemctl disable firewalld

https://blog.csdn.net/wang1171405487/article/details/81943868 NAT端口映射这篇原理讲的很透彻,尤其是那个图,太有助于理解了。

而且访问要注意,如果是宿主机或者宿主机里的虚拟机访问的话,访问ip为localhost或者虚拟机对应的虚拟网卡的Ip(表现在,宿主机ipconfig中虚拟机对应的Ip地址,而不是虚拟机中ifconfig的地址)。但是在vm的设置里要写虚拟机中的ip地址。

虚拟机设置固定ip

cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33

改
BOOTPROTO="static"
加
ONBOOT="yes"
IPADDR=192.168.145.129//ip
NETMASK=255.255.255.0
GATEWAY=192.168.145.1//网关
#DNS1=114.114.114.114
DNS1=8.8.8.8

重启network

systemctl stop network
systemctl start network

开启ssh服务

安装ssh服务端

sudo apt-get install openssh-server

开启ssh服务

sudo /etc/init.d/ssh start

查看是否启动

ps -e | grep ssh

开启关闭图形化界面

•命令模式
systemctl set-default multi-user.target 
•图形模式
systemctl set-default graphical.target
挂载 共享文件夹share在虚拟器选项设置,挂载到本地hgfs目录
vmhgfs-fuse .host:/share /mnt/hgfs

开始turbovnc服务

sudo rpm -ivh turbovnc-2.2.2.x86_64.rpm//安装turbovnc的rpm包
rpm -qa | grep vnc//rpm -qa查找所有安装的rpm包,grep查找显示该包
vncpasswd//开启turbovnc服务
netstat -natulp//查看所有活动 端口号
ip addr//查看ip地址

cd /opt/TurboVNC/bin
./vncserver -h//安装服务
./vncserver 

服务开启后,调用netstat -natulp可以看到多出两个端口
tcp 0 0 0.0.0.0:5801 0.0.0.0:* LISTEN 72693/./Xvnc
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 72693/./Xvnc

端口映射

先在本地虚拟机ifconfig
在这里插入图片描述
查看虚拟机ip
在这里插入图片描述
设置主机端口号随便写只要和原有的不冲突,虚拟机ip为ens33后面的ip地址,端口号为vnc服务的端口号5901。

采用vnc登录,本机ip地址通过ipconfig命令查看
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190801105927990.png在这里插入图片描述
至此得到了宿主机ip和宿主机的映射端口号,外网就可以通过这两个访问到虚拟机的5901端口。
端口映射的目的是,外网通过路由器连接内网,因此外网只能到达路由器这一层,由于路由器有防火墙功能,外网无法访问到内网,通过端口映射将内网中的服务器ip和对应服务端口,与宿主机(在这里起路由器的作用)的ip和端口映射,因此外网就可以通过宿主机的ip和端口号,访问对应内网中的ip和对应服务的端口,实现访问。

注:在家弄的时候,ip是vmnet8的,但后面到公司连上了,ip是vmnet1了

通过web远程登录服务器

通过noVNC的方式连接CentOs。
参考这里
noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算、虚拟机控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC。

noVNC 采用 WebSockets 实现,但是目前大多数 VNC 服务器都不支持 WebSockets,所以 noVNC 是不能直接连接 VNC 服务器的,需要一个代理来做 WebSockets 和 TCP sockets 之间的转换。这个代理在 noVNC 的目录里,叫做 websockify 。

1.关闭防火墙!!

service iptables stop

2.安装git

yum install git -y

3.安装turbovnc服务
参考上面的,最终目标是启动服务设置密码,并开启vnc端口。

4.安装noVNC
(1)下载

git clone git://github.com/kanaka/noVNC

(2)创建安全连接

^注: VNC的默认会话不是安全的,需要创建一个安全的VNC连接。创建完毕的证书 self.pem 需要放置到 noVNC/utils 目录下,当启动 noVNC 时,websockify将自动装载证书。

cd ./noVNC/utils/
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem

疯狂回车

(3)运行 noVNC
在noVNC目录下,执行

./utils/launch.sh --vnc localhost:5901

在这里插入图片描述
**这里尴尬一点哦,由于vnc之前杀死了又打开,导致端口号变了,这是接下来要解决的问题。**在这先忽略这个问题,也就是5903和前面5901一个意思。
看英文描述,意思是将虚拟机的6080端口代理vnc的服务端口,所以外网连接的是centos的6080端口来访问远程登录服务,理解了这个,就为后面的端口映射做准备。
(4)测试连接

如果是本地建立的虚拟机,依旧要端口映射哦,就是把宿主机端口映射到6080(然后服务器里将6080映射到了5903的)。

直接在浏览器输入http://192.168.179.1:6080/vnc.html
要把Ip地址替换成自己的
在这里插入图片描述
安装脚本(抄的)没实践

#!/bin/bash
 
 
# stop selinux and iptables
setenforce 0
service iptables stop
 
 
# install vncserver and git
yum install tigervnc-server git -y
vncserver :1
# 此时会提示输入密码
 
 
# download noVNC
git clone git://github.com/kanaka/noVNC
 
 
# create secure connection
cd ./noVNC/utils/
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
 
 
# run noVNC
cd ../
./utils/launch.sh --vnc localhost:5901
 
 
# running

存在和解决问题:

开启vnc服务,端口号是在5900的基础上增加,存在的问题是,如果杀死服务和端口或者服务器断电等不正常关闭,再次开启服务会导致端口号在之前的基础上增加,而不是在5900的基础上增加,导致客户端连接的端口发生改变(在这里是还要改变端口映射)。
通过阅读源码(搜相关问题的时候突然发现一个好东西,源码中英文注释有人都翻译出来了,真是大好人,感谢感谢),发现机制是这样的:
端口号创建是在5900的基础上增加,然后判断每一个是否可以创建,不行的话再加1,判断条件主要是,是否有socket文件(本来有文件说明该端口肯定被占用,如果重启,由于该端口关闭,相应文件是被清除的,但是由于非正常关机,该X文件未被清除,导致开机后,通过读取到该文件存在,服务以为该端口被占用,因此会在该端口号基础上加一,导致服务端口号改变)
因此为了解决这个问题,只需要在开机启动后,删除该文件下的X
,即可使每次开机开启服务的端口号都为5900+1.
具体做法:
设置VNCserver启动变量:
为了使VNCserver在每次启动时保持不变的端口号(5901)
先赋予rc.local可执行权限

chmod +x /etc/rc.d/rc.local

然后在/etc/rc.d/rc.local文件中添加命令:

rm -f /tmp/.X11-unix/X*     	//**必须清理**,因为这是端口号判断的依据
rm -f /.vnc/*.pid				//这两个不是必须的,只是没创一个端口都会添加一个文件,每次开启服务都会删除.log再重新创建,太多了占空间嘛
rm -f /.vnc/*.log

这样,每次启机,系统会先把上次非正常关机时留下的临时文件删除。

找了半天发现了,原来centos系统开机不自动清理tmp下所有文件,这里说的很清楚,所以强制关机是不清理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值