步骤目录:
步骤一:规划拓扑
1.1 电脑列表
1.2 服务器列表简介
步骤二:给电脑安装 CentOS 8.2 系统
步骤三:安装图形系统桌面
步骤四:安装中文输入法
4.1 安装中文库
4.2 确认中文库已经安装
4.3 安装中文输入法
步骤五:创建用户
5.1 创建用户
5.2 给用户设置密码
步骤六:增加 CentOS 8.2 系统的稳定性
6.1 延长看门狗喂狗间隔以减少系统被软锁出现 softlockup 的几率
6.1.1 临时延长看门狗喂狗间隔的时间
6.1.2 永久延长看门狗喂狗间隔的时间
6.1.2.1 添加延长看门狗喂狗间隔的设置
6.1.2.2 让添加延长看门狗喂狗间隔的设置生效
6.1.3 让 softlockup 触发后直接宕机
6.2 禁止图形系统桌面的 DNS 和路由以避免系统崩溃
6.2.1 添加禁止图形系统桌面的 DNS 和路由的设置
6.2.2 让禁止图形系统桌面的 DNS 和路由的设置生效
6.3 禁止图形系统界面自动黑屏或自动挂起
6.4 让 SSH 联接永久不超时
6.4.1 让 SSH 服务端的连接不超时
6.4.2 让用户登陆永不超时
6.4.2.1 在系统文件里添加让用户登陆永不超时的设置
6.4.2.2 让用户登陆永不超时的设置立刻生效
6.5 删除不需要的软件包以避免 CPU 占用过高而崩溃(选做)
步骤七:搭建虚拟化平台
步骤八:实现文件共享
8.1 安装 Samba 服务
8.2 配置 Samba 服务的配置文件
8.3 设置 Samba 服务共享用户
8.3.1 给 Samba 服务共享用户设置 Samba 共享密码
8.3.2 显示 Samba 服务共享用户是否可用
8.4 生成 Samba 服务共享目录
8.4.1 生成 Samba 服务共享目录
8.4.2 给 Samba 服务共享目录设置权限
8.4.3 给 Samba 服务共享目录设置所属主和所属组
8.4.4 给 Samba 服务共享目录设置 selinux 标签
8.4.5 让 Samba 服务共享目录上的 selinux 标签立刻生效
8.5 启动 Samba 服务并设置为开机自动启动
8.6 在系统防火墙开放 Samba 的端口
8.6.1 在系统防火墙开放 Samba 的端口
8.6.2 让系统防火墙重新加载
步骤九:实现远程桌面
9.1 安装 vnc 服务
9.2 设置 VNC 服务共享用户
9.2.1 进入用户
9.2.2 给 VNC 服务共享用户设置 VNC 远程密码
9.2.3 退出用户
9.3 启动 VNC 并设置为开机自动启动
9.3.1 创建开启 VNC 的脚本 ~/vnc.sh
9.3.1.1 进入到用户
9.3.1.2 创建开启 VNC 的脚本 ~/vnc.sh
9.3.1.3 退出用户
9.3.2 执行开启 VNC 的脚本
9.3.2.1 开机执行开启 VNC 的脚本
9.3.2.1.1 配置开机执行的文件
9.3.2.1.2 给开机执行的文件执行权限
9.3.2.2 定期执行开启 VNC 的脚本
9.3.2.2.1 进入到用户
9.3.2.2.2 配置定期执行的文件
9.3.2.2.3 退出用户
步骤十:设置 SSH 内网穿透
10.1 生成 SSH 密钥
10.1.1 进入到用户
10.1.2 生成 SSH 密钥
10.1.3 退出用户
10.2 实现无密钥 SSH
10.2.1 进入到用户
10.2.2 让电脑可以无密钥 SSH VPS
10.2.3 让 VPS 可以无密钥 SSH 自己
10.2.4 让客户端可以远程 VPS 和电脑
10.2.5 退出用户
10.3 建立电脑到 VPS 的 SSH 隧道并设置为开机自启
10.3.1 创建建立电脑到 VPS 的 SSH 隧道的脚本 ~/ssh.sh
10.3.1.1 进入到用户
10.3.1.2 创建建立电脑到 VPS 的 SSH 隧道的脚本 ~/ssh.sh
10.3.1.3 退出用户
10.3.2 执行电脑到 VPS 的 SSH 隧道的脚本
10.3.2.1 开机执行开启电脑到 VPS 的 SSH 隧道的脚本
10.3.2.1.1 配置开机执行的文件
10.3.2.1.2 给开机执行的文件执行权限
10.3.3 定期执行电脑到 VPS 的 SSH 隧道的脚本
10.3.3.1 进入到用户
10.3.3.2 配置定期执行的文件
10.3.3.3 退出用户
10.4 建立 VPS 的 SSH 隧道端口映射并设置为开机自启
10.4.1 创建建立 VPS 的 SSH 隧道端口映射的脚本
10.4.1.1 进入到用户
10.4.1.2 创建建立 VPS 的 SSH 隧道端口映射的脚本
10.4.1.3 退出用户
10.4.2 执行电脑到 VPS 的 SSH 隧道的脚本
10.4.2.1 开机执行开启电脑到 VPS 的 SSH 隧道的脚本
10.4.2.1.1 配置开机执行的文件
10.4.2.1.2 给开机执行的文件执行权限
10.4.3 定期执行电脑到 VPS 的 SSH 隧道的脚本
10.4.3.1 进入到用户
10.4.3.2 配置定期执行的文件
10.4.4 退出用户
10.4.5 打开外网 VPS 对应端口的防火墙
10.4.5.1 打开外网 VPS 对应端口的防火墙
10.4.5.2 让刚刚外网 VPS 刚刚配置的防火墙生效
步骤十一:加强 SSH 的安全性(选做)
11.1 禁止 root 被 SSH(选做)
11.2 禁止使用密码被 SSH(选做)
步骤十二:私有远程桌面和虚拟化平台的使用
12.1 客户端 SSH 联接电脑的方法
12.1.1 客户端和电脑不在同一内网时
12.1.2 客户端和电脑在同一内网时
12.2 客户端使用电脑虚拟化平台的的方法
12.2.1 客户端和电脑不在同一内网时
12.2.1.1 在客户端上联接电脑
12.2.1.2 通过 ssh 开启虚拟化图形管理平台
12.2.2 客户端和电脑在同一内网时
12.2.2.1 在客户端上联接电脑
12.2.2.2 通过 ssh 开启虚拟化图形管理平台
12.3 客户端使用私有远程桌面的方法
12.3.1 客户端和电脑不在同一内网时
12.3.2 客户端和电脑在同一内网时
12.4 客户端在内网和电脑互传数据的方法
12.4.1 在 Windows 图形客户端上和电脑互传数据的方法
12.4.2 在 Linux 图形客户端上和电脑互传数据的方法
步骤十三:客户端直接使用公网 IP 地址联接电脑
13.1 实现此步骤所需环境
13.2 在路由器上将电脑上的 22 端口映射到路由器上的公网 IP 地址上,这样路由器上的公网 IP 地址就变成电脑的公网 IP 地址了
13.3 将电脑的公网 IP 地址放到 VPS 上
13.3.1 将电脑的公网 IP 地址放到 VPS 上的意义
13.3.2 创建将电脑的公网 IP 地址放到 VPS 上的脚本
13.3.2.1 进入到用户用户
13.3.2.2 创建将电脑的公网 IP 地址放到 VPS 上的脚本
13.3.2.3 退出用户用户
13.3.3 执行将电脑的公网 IP 地址放到 VPS 上的脚本
13.3.3.1 进入到用户用户
13.3.3.2 配置定期执行的文件
13.3.3.3 退出用户用户
13.4 通过 DDNS 服务显示电脑的公网 IP
13.4.1 通过 DDNS 服务显示电脑的公网 IP
13.4.2 有些 DDNS 服务可以在网关路由器上设置,并且通过手机 APP 显示现在的公网 IP 地址
具体的操作步骤:
步骤一:规划拓扑
1.1 电脑列表
1) 一台可以联接公网的电脑
2) 一个 CentOS 8.2 系统的安装 U 盘
3) 一台可以联接公网并且有公网 IP 地址的 VPS
4) 一个可以联接公网并使用 SSH 和 VNC 的客户端
1.2 服务器列表简介
1) 电脑通过 SSH 建立联接到 VPS 的隧道,此操作会占用 VPS 的一个端口
2) VPS 通过 SSH 将联接电脑的隧道端口映射到一个新的端口
3) 客户端通过 SSH 联接到 VPS 映射出来的新端口,通过 SSH 或远程桌面使用虚拟化平台
4) 客户端和电脑如果在同一内网里则可以通过 Samba 互传数据
步骤二:CentOS 8.2 系统的安装 U 盘给电脑安装系统
(只在电脑上执行以下步骤)
(步骤略)
(
补充:
安装系统时可选择以下选项:
1) 系统起动方式:BIOS
2) Keyboard:English(US)
3) Language Support:English(United States)
4) Time & Date:Asia/ShangHai
5) Installation Source:Local media
6) Software Selection:Minial Install
7) Installation Destination:将主硬盘里的所有空间都分配给根分区
8) KDUMP:Kdump is disabled
9) Network & Host Name:开启网络联接并设置好固定 DNS
10) SECURITY POLICY:No controller found
)
(这里以将 IP 地址设置为固定 IP 地址 192.168.0.1,DNS 设置为固定 DNS 8.8.8.8 为例)
步骤三:安装图形系统桌面
(只在电脑上执行以下步骤)
# yum groupinstall -y "Server with GUI"
步骤四:安装中文输入法
4.1 安装中文库
(只在电脑上执行以下步骤)
# yum -y install langpacks-zh_CN
4.2 确认中文库已经安装
(只在电脑上执行以下步骤)
# locale -a
4.3 安装中文输入法
(只在电脑上执行以下步骤)
# yum -y install ibus ibus-libpinyin
步骤五:创建用户用户
5.1 创建用户用户
(分别在电脑、VPS 和客户端上执行以下步骤)
# useradd zhumingyu
(补充:这里创建用户 zhumingyu 为例)
5.2 给用户用户设置密码
(分别在电脑、VPS 和客户端上执行以下步骤)
# passwd zhumingyu
(补充:这里创建用户 zhumingyu 为例)
步骤六:增加 CentOS 系统的稳定性
6.1 延长看门狗喂狗间隔以减少系统被软锁出现 softlockup 的几率
6.1.1 临时延长看门狗喂狗间隔的时间
(分别在电脑和 VPS 上执行以下步骤)
# sysctl -w kernel.watchdog_thresh=60
6.1.2 永久延长看门狗喂狗间隔的时间
6.1.2.1 添加延长看门狗喂狗间隔的设置
(只在电脑上执行以下步骤)
# vim /etc/sysctl.conf
添加以下内容:
......
kernel.watchdog_thresh=60
6.1.2.2 让添加延长看门狗喂狗间隔的设置生效
(只在电脑上执行以下步骤)
# sysctl -p
6.1.3 让 softlockup 触发后直接宕机
(只在电脑上执行以下步骤)
# echo 1 > /proc/sys/kernel/softlockup_panic
6.2 禁止图形系统桌面的 DNS 和路由以避免系统崩溃
6.2.1 添加禁止图形系统桌面的 DNS 和路由的设置
(分别在电脑和 VPS 上执行以下步骤)
# vim /etc/sysconfig/network-scripts/ifcfg-enp9s0
添加以下内容:
......
PEERDNS=no
PEERROUTES=no
(补充:这里的 ifcfg-enp9s0 是指网卡对应的配置文件,不同的网卡对应的配置文件不同,这里以网卡名 ifcfg-enp9s0 为例,需要给所有网卡添加此参数,这一步也可以在系统图形系统桌面上设置)
6.2.2 让禁止图形系统桌面的 DNS 和路由的设置生效
(分别在电脑和 VPS 上执行以下步骤)
# systemctl restart NetworkManager
6.3 禁止图形系统界面自动黑屏或自动挂起
(只在电脑上执行以下步骤)
6.4 让 SSH 联接永久不超时
6.4.1 让 SSH 服务端的连接不超时
(分别在电脑和 VPS 上执行以下步骤)
# vim /etc/ssh/sshd_config
将以下内容:
......
#ClientAliveInterval 0
#ClientAliveCountMax 3
......
修改为:
......
ClientAliveInterval 60
ClientAliveCountMax 525600
......
(补充:这样设置会让 SSH 服务端每 60s 就会尝试连接一次客户端,如果 525600 次后没有回应,则断开)
6.4.2 让用户登陆永不超时
6.4.2.1 在系统文件里添加让用户登陆永不超时的设置
(分别在电脑和 VPS 上执行以下步骤)
# vim /etc/bashrc
添加以下内容:
......
export TMOUT=0
# vim /etc/profile
添加以下内容:
......
export TMOUT=0
6.4.2.2 让用户登陆永不超时的设置立刻生效
(分别在电脑和 VPS 上执行以下步骤)
# source /etc/bashrc
# source /etc/profile
6.5 删除不需要的软件包以避免 CPU 占用过高而崩溃(选做)
(步骤略)
步骤七:搭建虚拟化平台
(只在电脑上执行以下步骤)
# yum -y install qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu virt-install virt-manager virt-viewer virt-v2v
步骤八:实现文件共享
8.1 安装 Samba 服务
(只在电脑上执行以下步骤)
# yum -y install samba
8.2 配置 Samba 服务的配置文件
(只在电脑上执行以下步骤)
# vim /etc/samba/smb.conf
将全部内容修改如下:
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = WORKGROUP
realm = zhumingyu
netbios name = zhumingyu
#encrypt passwords = yes
map to guest = NEVER
security = user
password server = *
name resolve order = bcast host
restrict anonymous = 2
#null passwords = no
#guest account = smb_nobody
#use spnego = yes
client use spnego = yes
server string = ""
host msdfs = no
msdfs root = no
domain master = no
preferred master = no
local master = no
os level = 0
browse list = no
browseable = no
dns proxy = no
wide links = no
public= no
guest ok = no
hosts deny = ALL EXCEPT 192.168.0.2
[share]
valid users = zhumingyu
write list = zhumingyu
read list = zhumingyu
path = /share
guest ok = no
read only = no
browseable = no
writable = yes
public = no
create mask = 0755
directory mask = 0755
(
补充:
1) 这里以 Samba 服务器的 IP 地址是 192.168.0.1 为例
2) 这里的 workgroup = WORKGROUP 是让 Samba 服务属于 WORKGROUP
3) 这里的 hosts deny = ALL EXCEPT 192.168.0.2 是只让客户端 192.168.0.3 能够访问服务端的 Samba
4) 这里的 sharetest 是这个 Samba 挂载点的名称,挂载这个挂载点的格式就是://192.168.0.1/share
5) 这里的 valid users = zhumingyu 是 Samba 服务共享用户需要手动生成
6) 这里的 path = /share 是 Samba 服务共享目录需要手动生成
)
8.3 设置 Samba 服务共享用户
8.3.1 给 Samba 服务共享用户设置 Samba 共享密码
(只在电脑上执行以下步骤)
# smbpasswd -a zhumingyu
(补充:这里以用户 zhumingyu 为例)
8.3.2 显示 Samba 服务共享用户是否可用
(只在电脑上执行以下步骤)
# pdbedit -L
8.4 生成 Samba 服务共享目录
8.4.1 生成 Samba 服务共享目录
(只在电脑上执行以下步骤)
# mkdir /share
8.4.2 给 Samba 服务共享目录设置权限
(只在电脑上执行以下步骤)
# chmod 755 /share/
8.4.3 给 Samba 服务共享目录设置所属主和所属组
(只在电脑上执行以下步骤)
# chown zhumingyu:zhumingyu /share/
(补充:这里以用户 zhumingyu 为例)
8.4.4 给 Samba 服务共享目录设置 selinux 标签
(只在电脑上执行以下步骤)
# semanage fcontext -a -t samba_share_t '/share(/.*)?'
8.4.5 让 Samba 服务共享目录上的 selinux 标签立刻生效
(只在电脑上执行以下步骤)
# restorecon -RFvv /share/
8.5 启动 Samba 服务并设置为开机自动启动
(只在电脑上执行以下步骤)
# systemctl enable --now smb
8.6 在系统防火墙开放 Samba 的端口
8.6.1 在系统防火墙开放 Samba 的端口
(只在电脑上执行以下步骤)
# firewall-cmd --add-service=samba --permanent
8.6.2 让系统防火墙重新加载
(只在电脑上执行以下步骤)
# firewall-cmd --reload
步骤九:实现远程桌面
9.1 安装 vnc 服务
(只在电脑上执行以下步骤)
# yum -y install tigervnc tigervnc-server
9.2 设置 VNC 服务共享用户
9.2.1 进入用户
(只在电脑上执行以下步骤)
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
9.2.2 给 VNC 服务共享用户设置 VNC 远程密码
(只在电脑上执行以下步骤)
$ vncpasswd
9.2.3 退出用户
(只在电脑上执行以下步骤)
$ exit
9.3 启动 VNC 并设置为开机自动启动
9.3.1 创建开启 VNC 的脚本 ~/vnc.sh
9.3.1.1 进入到用户
(只在电脑上执行以下步骤)
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
9.3.1.2 创建开启 VNC 的脚本 ~/vnc.sh
(只在电脑上执行以下步骤)
$ vim ~/vnc.sh
创建以下内容:
#!/bin/bash
vncserver -list | grep :1 &> /dev/null || vncserver :1 -localhost -nolisten tcp
(补充:此命令会检查 vncserver :1 会话是否存在,如果不存在,就以禁止非安全远程登陆的方式创建一个)
9.3.1.3 退出用户
(只在电脑上执行以下步骤)
$ exit
9.3.2 执行开启 VNC 的脚本
9.3.2.1 开机执行开启 VNC 的脚本
9.3.2.1.1 配置开机执行的文件
(只在电脑上执行以下步骤)
# vim /etc/rc.local
添加以下内容:
......
su - zhumingyu -c '/home/zhumingyu/vnc.sh'
(补充:这里以用户 zhumingyu 的身份运行)
或者:
......
su - zhumingyu -c 'vncserver -list | grep :1' &> /dev/null || su - zhumingyu -c 'vncserver :1 -localhost -nolisten tcp'
(
补充:
1) 如果前面没有创建脚本的话,可以只添加上面“或者”后面的这一行
2) 以用户 zhumingyu 的身份运行
3) 此命令会检查 vncserver :1 会话是否存在,如果不存在,就以禁止非安全远程登陆的方式创建一个
)
9.3.2.1.2 给开机执行的文件执行权限
(只在电脑上执行以下步骤)
# chmod u+x /home/zhumingyu/vnc.sh
9.3.2.2 定期执行开启 VNC 的脚本
9.3.2.2.1 进入到用户
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
9.3.2.2.2 配置定期执行的文件
(只在电脑上执行以下步骤)
$ crontab -e
添加以下内容:
......
0 */1 * * * /home/zhumingyu/vnc.sh
或者:
......
0 */1 * * * vncserver -list | grep :1' &> /dev/null || su - zhumingyu -c 'vncserver :1 -localhost -nolisten tcp
(
补充:
1) 这里以用户 zhumingyu 的身份运行
2) 如果前面没有创建脚本的话,可以只添加上面“或者”后面的这一行
3) 此命令会检查 vncserver :1 会话是否存在,如果不存在,就以禁止非安全远程登陆的方式创建一个
)
9.3.2.2.3 退出用户
(只在电脑上执行以下步骤)
$ exit
步骤十:设置 SSH 内网穿透
10.1 生成 SSH 密钥
10.1.1 进入到用户
(分别在电脑、VPS 和客户端上执行以下步骤)
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
10.1.2 生成 SSH 密钥
(分别在电脑、VPS 和客户端上执行以下步骤)
$ ssh-keygen -b 2048 -t rsa
(补充:建议在创建 SSH 密钥时为 SSH 密钥添加一个密码)
10.1.3 退出用户
(分别在电脑、VPS 和客户端上执行以下步骤)
$ exit
10.2 实现无密钥 SSH
10.2.1 进入到用户
(分别在电脑、VPS 和客户端上执行以下步骤)
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
10.2.2 让电脑可以无密钥 SSH VPS
(只在电脑上执行以下步骤)
$ ssh-copy-id <public IP address of VPS>
10.2.3 让 VPS 可以无密钥 SSH 自己
(只在 VPS 上执行以下步骤)
$ ssh-copy-id localhost
10.2.4 让客户端可以远程 VPS 和电脑
$ ssh-copy-id <IP address of computer>
$ ssh-copy-id <public IP address of VPS>
10.2.5 退出用户
(分别在电脑、VPS 和客户端上执行以下步骤)
$ exit
10.3 建立电脑到 VPS 的 SSH 隧道并设置为开机自启
10.3.1 创建建立电脑到 VPS 的 SSH 隧道的脚本 ~/ssh.sh
10.3.1.1 进入到用户
(只在电脑上执行以下步骤)
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
10.3.1.2 创建建立电脑到 VPS 的 SSH 隧道的脚本 ~/ssh.sh
(只在电脑上执行以下步骤)
$ vim ~/ssh.sh
创建以下内容:
ps -aux | grep -v grep | grep "11000:localhost:22 <IP address of computer>" &> /dev/null || ssh -X -fCNR 11000:localhost:22 <IP address of computer>
(
补充:
1) 这里以用户 zhumingyu 的身份运行
2) 如果 11000 端口没有影射到 22 端口则影射
)
10.3.1.3 退出用户
(只在电脑上执行以下步骤)
$ exit
10.3.2 执行电脑到 VPS 的 SSH 隧道的脚本
10.3.2.1 开机执行开启电脑到 VPS 的 SSH 隧道的脚本
10.3.2.1.1 配置开机执行的文件
(只在电脑上执行以下步骤)
# vim /etc/rc.local
添加以下内容:
......
su - zhumingyu -c '/home/zhumingyu/ssh.sh'
(补充:这里以用户 zhumingyu 的身份运行)
或者:
......
ps -aux | grep -v grep | grep "11000:localhost:22 <IP address of computer>" &> /dev/null || su - zhumingyu -c 'ssh -X -fCNR 11000:localhost:22 <IP address of computer>'
(
补充:
1) 如果前面没有创建脚本的话,可以只添加上面“或者”后面的这一行
2) 这里以用户 zhumingyu 的身份运行
3) 如果 11000 端口没有影射到 22 端口则影射
)
10.3.2.1.2 给开机执行的文件执行权限
(只在电脑上执行以下步骤)
# chmod +x /etc/rc.local
10.3.3 定期执行电脑到 VPS 的 SSH 隧道的脚本
10.3.3.1 进入到用户
(只在电脑上执行以下步骤)
# su - zhumingyu
(补充:这里以 zhumingyu 为例)
10.3.3.2 配置定期执行的文件
(只在电脑上执行以下步骤)
$ crontab -e
添加以下内容:
......
0 */1 * * * /home/zhumingyu/ssh.sh
或者:
......
0 */1 * * * ps -aux | grep -v grep | grep "11000:localhost:22 <IP address of computer>" &> /dev/null || ssh -X -fCNR 11000:localhost:22 <IP address of computer>
(补充:如果 11000 端口影射到 22 端口则影射)
10.3.3.3 退出用户
(只在电脑上执行以下步骤)
$ exit
10.4 建立 VPS 的 SSH 隧道端口映射并设置为开机自启
10.4.1 创建建立 VPS 的 SSH 隧道端口映射的脚本
10.4.1.1 进入到用户
(只在 VPS 上执行以下步骤)
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
10.4.1.2 创建建立 VPS 的 SSH 隧道端口映射的脚本
(只在 VPS 上执行以下步骤)
$ vim ~/sshd.sh
创建以下内容:
#!/bin/bash
ps -aux | grep -v grep | grep "*:10000:localhost:11000 localhost" || ssh -X -fCNL *:10000:localhost:11000 localhost
(补充:如果 11000 端口没有影射成 10000 端口则影射)
10.4.1.3 退出用户
(只在 VPS 上执行以下步骤)
$ exit
10.4.2 执行电脑到 VPS 的 SSH 隧道的脚本
10.4.2.1 开机执行开启电脑到 VPS 的 SSH 隧道的脚本
10.4.2.1.1 配置开机执行的文件
(只在 VPS 上执行以下步骤)
# vim /etc/rc.local
添加以下内容:
......
su - zhumingyu -c '/home/zhumingyu/sshd.sh'
(补充:这里以用户 zhumingyu 为例)
或者:
......
ps -aux | grep -v grep | grep "*:10000:localhost:11000 localhost" || su - zhumingyu -c 'ssh -X -fCNL *:10000:localhost:11000 localhost'
(
补充:
1) 如果前面没有创建脚本的话,可以只添加上面“或者”后面的这一行
2) 以用户 zhumingyu 的身份运行
3) 如果 11000 端口没有影射成 10000 端口则影射
)
10.4.2.1.2 给开机执行的文件执行权限
(只在 VPS 上执行以下步骤)
# chmod +x /etc/rc.local
10.4.3 定期执行电脑到 VPS 的 SSH 隧道的脚本
10.4.3.1 进入到用户用户
(只在 VPS 上执行以下步骤)
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
10.4.3.2 配置定期执行的文件
(只在 VPS 上执行以下步骤)
$ crontab -e
添加以下内容:
......
0 */1 * * * /home/zhumingyu/sshd.sh
或者:
......
0 */1 * * * ps -aux | grep -v grep | grep "*:10000:localhost:11000 localhost" || ssh -X -fCNL *:10000:localhost:11000 localhost
(
补充:
1) 如果前面没有创建脚本的话,可以只添加上面“或者”后面的这一行
2) 如果 11000 端口没有影射成 10000 端口则影射
)
10.4.4 退出用户
(只在 VPS 上执行以下步骤)
$ exit
10.4.5 打开外网 VPS 对应端口的防火墙
10.4.5.1 打开外网 VPS 对应端口的防火墙
(只在 VPS 上执行以下步骤)
# firewall-cmd --add-port=10000/tcp --permanent
(补充:这里打开的端口号,是根据前面的设置而定的)
10.4.5.2 让刚刚外网 VPS 刚刚配置的防火墙生效
(只在 VPS 上执行以下步骤)
# firewall-cmd --reload
步骤十一:加强 SSH 的安全性(选做)
11.1 禁止 root 被 SSH(选做)
(分别在电脑和 VPS 上执行以下步骤)
# vim /etc/ssh/sshd_config
将以下内容:
......
PermitRootLogin no
......
修改为:
......
PermitRootLogin yes
......
11.2 禁止使用密码被 SSH(选做)
(分别在电脑和 VPS 上执行以下步骤)
# vim /etc/ssh/sshd_config
将以下内容:
......
# PasswordAuthentication yes
......
修改为:
......
PasswordAuthentication no
......
步骤十二:私有远程桌面和虚拟化平台的使用
12.1 客户端 SSH 联接电脑的方法
12.1.1 客户端和电脑不在同一内网时
(只在客户端上执行以下步骤)
# ssh -X -p <SSH non standard port number> <user of computer>@<public IP address of VPS>
(
补充:
1) 如果按照前面的步骤操作,这里的 VPS 每小时会生成一个新的 SSH 非标准端口号以用于联接电脑,比如说现在是 14 点,那就会自动生成一个 11014 的 SSH 非标准端口号
2) 如果按照前面的步骤操作,这里的用户是 zhumingyu
)
12.1.2 客户端和电脑在同一内网时
(只在客户端上执行以下步骤)
# ssh -X <user of computer>@<IP address of computer>
(
补充:
1) 如果按照前面的步骤操作,这里的用户用户是 zhumingyu
2) 如果按照前面的步骤操作,这里的电脑的 IP 地址是 192.168.0.1
)
12.2 客户端使用电脑虚拟化平台的的方法
12.2.1 客户端和电脑不在同一内网时
12.2.1.1 在客户端上联接电脑
(只在客户端上执行以下步骤)
# ssh -X -p <SSH non standard port number> <user of computer>@<public IP address of VPS>
(
补充:
1) 如果按照前面的步骤操作,这里的 VPS 每小时会生成一个新的 SSH 非标准端口号以用于联接电脑,比如说现在是 14 点,那就会自动生成一个 11014 的 SSH 非标准端口号
2) 如果按照前面的步骤操作,这里的用户用户是 zhumingyu
)
12.2.1.2 通过 ssh 开启虚拟化图形管理平台
(只在客户端上执行以下步骤)
# virt-manager
(注意:网络带宽很小则远程桌面会比较卡,建议电脑、客户端和 VPS 的带宽 2m 以上)
12.2.2 客户端和电脑在同一内网时
12.2.2.1 在客户端上联接电脑
(只在客户端上执行以下步骤)
# ssh -X <user of computer>@<IP address of computer>
(
补充:
1) 如果按照前面的步骤操作,这里的用户用户是 zhumingyu
2) 如果按照前面的步骤操作,这里的电脑的 IP 地址是 192.168.0.1
)
12.2.2.2 通过 ssh 开启虚拟化图形管理平台
(只在客户端上执行以下步骤)
# virt-manager
(注意:网络带宽很小则远程桌面会比较卡,建议电脑、客户端和 VPS 的带宽 2m 以上)
12.3 客户端使用私有远程桌面的方法
12.3.1 客户端和电脑不在同一内网时
(只在客户端上执行以下步骤)
# ssh -p <SSH non standard port number> -L <port number of VNC>:localhost:<port number of VNC> -l <user of computer> <public IP address of VPS>
(
补充:
1) 如果按照前面的步骤操作,这里的 VPS 每小时会生成一个新的 SSH 非标准端口号以用于联接电脑,比如说现在是 14 点,那就会自动生成一个 11014 的 SSH 非标准端口号
2) 如果按照前面的步骤操作,这里的 VNC 的端口号是 5901
3) 如果按照前面的步骤操作,这里的电脑的用户用户是 zhumingyu
)
另开启一个命令行终端:
# vncviewer localhost :<number of VNC service>
(补充:如果按照前面的步骤操作,这里的 VNC 服务的编号是 1)
(注意:网络带宽很小则远程桌面会比较卡,建议电脑、客户端和 VPS 的带宽 2m 以上)
12.3.2 客户端和电脑在同一内网时
(只在客户端上执行以下步骤)
# vncviewer -via <user of computer>@<IP address of computer> localhost :<number of VNC service>
(
补充:
1) 如果按照前面的步骤操作,这里的电脑的用户是 zhumingyu
2) 如果按照前面的步骤操作,这里的电脑的 IP 地址是 192.168.0.1
3) 如果按照前面的步骤操作,这里的 VNC 服务的编号是 1
)
12.4 客户端在内网和电脑互传数据的方法
12.4.1 在 Windows 图形客户端上和电脑互传数据的方法
(只在客户端上执行以下步骤)
在文件目录下栏输入以下内容:
\\<IP address of computer>\<samba directory>
(
补充:
1) 如果按照前面的步骤操作,这里的电脑的 IP 地址是 192.168.0.1
2) 如果按照前面的步骤操作,这里的 Samba 项目是 share
)
(
注意:
1) 如果按照前面的步骤操作,只有 IP 地址是 192.168.0.2 和 192.168.0.3 的客户端才能够执行以上步骤
2) Windows 客户端建议安装 SecureCRT、Xmanager 和 VNC 客户端以实现 ssh、ssh 调用 virt-manager 和 VNC
)
12.4.2 在 Linux 图形客户端上和电脑互传数据的方法
(只在客户端上执行以下步骤)
在文件 –> 其他位置 –> 连接到服务器的地址栏里输入以下内容:
smb://<IP address of computer>/<samba directory>
(
补充:
1) 如果按照前面的步骤操作,这里的电脑的 IP 地址是 192.168.0.1
2) 如果按照前面的步骤操作,这里的 Samba 项目是 share
)
(注意:如果按照前面的步骤操作,只有 IP 地址是 192.168.0.2 和 192.168.0.3 的客户端才能够执行以上步骤)
步骤十三:客户端直接使用公网 IP 地址联接电脑
13.1 实现此步骤所需环境
网关路由器拥有 IP 地址(可以通过给宽带申请公网 IP 地址并将光纤盒设置为桥接模式,在路由器上添加用户和密码实现)
13.2 在路由器上将电脑上的 22 端口映射到路由器上的公网 IP 地址上,这样路由器上的公网 IP 地址就变成电脑的公网 IP 地址了
(步骤略)
13.3 将电脑的公网 IP 地址放到 VPS 上
13.3.1 将电脑的公网 IP 地址放到 VPS 上的意义
由于大多数的公网 IP 地址都是动态,定期会变,所以可以通过此方法知道近期的公网 IP 地址是多少
13.3.2 创建将电脑的公网 IP 地址放到 VPS 上的脚本
13.3.2.1 进入到用户
(只在电脑上执行以下步骤)
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
13.3.2.2 创建将电脑的公网 IP 地址放到 VPS 上的脚本
(只在电脑上执行以下步骤)
$ vim /root/computerip.sh
创建以下内容:
#!/bin/bash
computerip=`curl ifconfig.me`
domain=<public IP address of VPS>
ssh athenadb.com \"echo `curl ifconfig.me` > /home/zhumingyu/serverip.txt\"
(补充:将电脑的公网 IP 地址拷贝到 VPS 的 /tmp/computerip.txt 文件里为例)
13.3.2.3 退出用户用户
(只在电脑上执行以下步骤)
$ exit
13.3.3 执行将电脑的公网 IP 地址放到 VPS 上的脚本
13.3.3.1 进入到用户用户
(只在电脑上执行以下步骤)
# su - zhumingyu
(补充:这里以用户 zhumingyu 为例)
13.3.3.2 配置定期执行的文件
(只在电脑上执行以下步骤)
$ crontab -e
添加以下内容:
......
0 */10 * * * /home/zhumingyu/.crontab/computerip.txt
或者:
......
ssh <public IP address of VPS> \"echo `curl ifconfig.me` > /home/zhumingyu/serverip.txt\"
(
补充:
1) 如果前面没有创建脚本的话,可以只添加上面“或者”后面的这一行
2) 将电脑的公网 IP 地址拷贝到 VPS 的 /home/zhumingyu/serverip.txt 文件里
)
13.3.3.3 退出用户用户
(只在电脑上执行以下步骤)
$ exit
13.4 通过 DDNS 服务显示电脑的公网 IP
13.4.1 通过 DDNS 服务显示电脑的公网 IP
由于大多数的公网 IP 地址都是动态,定期会变,所以可以通过此方法知道近期的公网 IP 地址是多少
13.4.2 有些 DDNS 服务可以在网关路由器上设置,并且通过手机 APP 显示现在的公网 IP 地址
(步骤略)