虚拟机服务器搭建+FRP内网穿透
一、虚拟机安装
1.安装vmware软件,创建虚拟机
这里安装的是vmware workstation 17 pro和CentOS-7-x86_64-DVD-2009镜像文件
centos虚拟机服务器手把手搭建_虚拟机搭建服务器_无名之辈之码谷娃的博客-博客
这篇文章对虚拟机搭建讲的还是比较详细。
完成后,需要为用户添加sudo权限,不然你创建的用户是没有sudo权限的
打开终端命令窗口,进入root用户下:
vi /etc/sudoers
添加用户名如下
保存退出。
至此虚拟机已安装好
二、网络配置
1.虚拟机配置
vi /etc/sysconfig/network-scrips/ifcfg-ensxx 配置网络信息,ensxx为网卡名称,这里是ens33,如下图所示:
配置完成后,wq保存退出
2.设置虚拟网络编辑器
编辑-->虚拟网络编辑器打开如下所示
修改NAT模式如下:
注意网关IP与上一步骤网关需保持一致
3.设置VMnet8属性
打开本地网络设置--> 高级网络设置-->更改适配器选项-->鼠标右击VMnet8-->打开IPV4 设置如下:
网关需与前两步骤设置的一致,IP地址与网关同段,且不与ens33中IP地址冲突。
重启VMnet8网卡
service network restart
或 reboot 重启
网络测试:
输入命令:ping www.baidu.com 外网连接是否正常
输入命令:ping 192.168.0.11 内网是否正常
注意:
1.如果内网电脑IP与虚拟机不同段,则虚拟机可以ping通内网,而内网上的电脑ping不同虚拟机
2.当把虚拟机的网段改成和内网电脑同网段时,可能出现问题:虚拟机ping不同本机电脑及内网电脑(这点我也没搞明白是什么问题)
3.如果虚拟机 network状态显示为 active(exited),可能是本地服务器的VMnet相关服务未开启
4. ifconfig 打开查看ens33网卡未启动 ,查看文件ifcfg-ens33文件内ONBOOT=yes没问题,
systemctl start network.service 启动失败
解决方法:
NetworkManager与network冲突
停止NetworkManager运行
service NetworkManager stop
关闭NetworkManager服务
systemctl disable NetworkManager.service
重启网卡正常
systemctl restart network service
三、远程桌面工具-X2go
X2go是一个开源的Linux远程桌面访问工具,x2go不仅画面流畅很多,且能传递声音,还能挂载远程目录,远程USB设备等。使用桌面共享NX协议,X2Go速度快,比VNC协议更好。它是RDP和VNC桌面共享协议的最佳替代方案。X2Go支持多个client远程同一台Linux服务器,client可以运行在windows或者Linux系统上面。是一款支持多用户、跨平台的远程桌面工具。
X2goclient客户机的链接:https://pan.baidu.com/s/1P6fpjQ_kcIw_OxU6fNZQaQ 提取码:0306 ,可自行下载。
1. X2goserver服务器安装
1.添加EPEL repo
终端输入命令:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install epel-release
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist
2.yum安装x2goserver应用
yum install x2goserver-xsession
3.安装图形桌面环境
yum -y groupinstall "Xfce"
4.启动GUI
#查看当前默认目标
systemctl get-default
#设置graphical.target
systemctl set-default graphical.target
5.reboot重启,选择xfce session模式
6.连接
本地主机上安装X2goclient,打开新建链接,如下即可连接:
问题:如果出现mobaX可以连接,x2go无法连接,服务器上删除 /tmp/ .x20go-用户名文件内容试试
四、设置文件共享
本地主机与服务器之间往往会存在很多文件需要传输,在这里最简单的办法就是设置共享文件夹,即方便又快捷。
1. 在虚拟机>设置>选项>共享文件夹,启用。并添加本地主机文件夹,且文件夹共享属性要打开
2.打开虚拟机-->重新安装VMware tools(T)
3.解压桌面vmware-tools文件,得vmware-tools-distrib文件
如果2、3步骤不能成功,请更换为vmware自带的镜像文件开启虚拟机后,再试试。
4.进入vmware-tools-distrib文件夹,打开终端界面
5.输入命令:vmware-install.pl 直到安装结束
如果出现如下问题
不要着急,先安装perl命令,再用perl命令来安装vmware Tools即可
输入命令: sudo yum install perl 安装完成后,
输入命令: sudo perl vmware-install.pl 如下,一直安装完成即可
6.输入命令:vmware-hgfsclient即可查看到共享文件夹名称
正常情况下,到这里文件共享设置就已经OK了。如果能查看到共享文件名称,但是没有hgfs文件或hgfs文件里没有共享文件,请往下看。
7. 按道理说,安装好VMware Tools后,mnt下会出现hgfs,如果没有则先创建一个
sudo mkdir /mnt/hgfs
若挂载过,先取消挂载
sudo umount /mnt/hgfs
8.进行挂载(输入命令:id 可查看本机uid,gid)
sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000 -o umask=022
9.设置重启自动挂载
打开文件 vi /etc/fstab 编辑
在最后一行添加内容:.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse allow_other 0 0
保存退出,重启OK
五、Docker容器安装
1.下载地址:https://download.docker.com/linux/static/stable/x86_64/
选择linux-CentOS最新版本
2.解压安装包,所有文件复制到 /usr/bin目录下
tar -zxvf docker-20.10.9.tgz
cp docker/* /usr/bin/
3.注册docker服务和开机启动
在 /etc/systemd/system目录下,创建一个docker.service文件。用于注册docker服务和
开机启动
vi /etc/systemd/system/docker.service
编辑内容如下:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
4.设置docker.service文件权限
chmod 777 /etc/systemd/system/docker.service
5.重新加载配件
systemctl daemon-reload
6.设置docker启动和开机自启
systemctl start docker.service
systemctl enable docker.service
7.查看docker状态 已运行
systemctl status docker.service
六、FRPC客户端安装
FRPS服务端已经在云服务器上安装好了,这里只介绍客户端的安装
1.官方下载 安装包
Releases · fatedier/frp · GitHub
2.解压安装包后,得到如下文件
3.创建启动文件 ,在/etc/systemd/system/文件夹内创建frpc.service文件
打开frpc.service文件
sudo vi /etc/systemd/system/frpc.service
编辑如下:
[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#Restart=always
Restart=on-failure
RestartSec=5s
#启动服务的命令(此处写你的frpc的实际安装目录)
ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini
[Install]
WantedBy=multi-user.target
4.注意步骤3中文件路径,需把解压包内的frpc和frpc.ini文件拷贝到相应的文件路径内。
即在解压文件夹内打开终端,把frpc , frpc.ini分别拷贝到 /usr/bin/ 和 /etc/frp/目录下
sudo cp -i frpc /usr/bin/
sudo mkdir /etc/frp (没有frp文件,需先创建)
sudo cp -i frpc.ini /etc/frp/
5.设置frpc开机自启
#打开frpc服务
systemctl start frpc
#设置为开机自启
systemctl enable frpc
#重启frpc服务
systemctl restart frpc
#查看frpc状态 ,已激活
systemctl status frpc
6.最后编辑frpc.ini设置
sudo vi /etc/frp/frpc.ini
编辑如下:
[common]
# server_addr为FRPS服务器IP地址
server_addr = x.x.x.x
# server_port为服务端监听端口,bind_port
server_port = 7000
# 身份验证
token = 12345678(与FRPS的token码一致)
[ssh]
type = tcp
local_ip = 192.168.0.201 (本地虚拟机IP ,ifconfig查看)
local_port = 22
remote_port = 7501
# [ssh] 为服务名称,下方此处设置为,访问frp服务段的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型,此处为tcp
# local_ip 为中转客户端实际访问的IP
# local_port 为目标端口
# remote_port 为远程端口
编辑完成,保存退出
备注:可参考官方模板自建内网穿透服务器: 通过FRP,Zerotier等几种通过自己服务器实现内网穿透的教程 - Gitee.com
七、防火墙开放端口
FRP安装完成后,需要在防火墙上开放相应的端口
1.查看已开放端口
firewall-cmd --zone=public --list-ports
2.打开端口
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=7501/tcp --permanent
3.关闭端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
4.重启防火墙
systemctl restart firewalld
八、重启虚拟机
reboot
#查看IP状态
ifconfig
#查看docker容器状态
systemctl status docker
#查看frpc状态
systemctl status frpc
#查看SSH状态
systemctl status sshd
#SSH一般都是已经安装好了的,如果未安装,
sudo yum install openssh-server (安装SSH)
sudo vi /etc/ssh/sshd_config (修改配置文件) 将PermitRootLogin prohibit-password改为PermitRootLogin yes
sudo service ssh start /etc/init.d/ssh restart
#查看x2goservice状态
systemctl status x2gocleansessions.service
打开FRP面板,已看到添加端口
另一台电脑打开MobaXterm,选SSH模式
连接成功。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了虚拟机的搭建以及虚拟机的远程服务,由于FRP服务端需要在云服务器上搭建,而云服务器在我们另外的同事手上,所以没法给大家介绍。欢迎大家留言沟通,如有侵权,请告知,谢谢!