文章目录
前言
我们通常使用ssh连接虚拟机中的Ubuntu,方便学习。但是当在项目中遇到远程控制主机的时候,发现ssh连接不到外网主机,如果使用向日葵或者别的工具,有时候很卡顿。这时候使用内网穿透就可以实现在非局域网ssh远程控制主机的目的。
1.局域网 远程连接
当两个主机处于一个局域网下时,这两个主机可以相互ping通,一个局域网下的两个主机用ssh连接比较简单。
1.切换root用户,如果未设置root用户密码,需要先设置root密码:
# 切换root用户su root
# 设置root用户密码sudopasswd root
2.安装ssh远程连接工具
sudoaptinstall openssh-server
3.开启ssh服务
sudoservicessh start
或者
sudoservicessh restart
# 停止ssh服务sudoservicessh stop
4.设置ssh服务开机自启动(开机自启动基本都类似,python脚本开机自启动参考bash脚本注册到系统服务实现开机自启动)
# 开机自启动sudo systemctl enablessh#查看ssh服务状态sudo systemctl status sshd
5.修改ssh的配置文件sshd_config,默认路径为
/etc/ssh/ssd_config
,修改
port
,
ListenAddress
,
PermitRootLogin
sudovim /etc/ssh/sshd_config
去掉注释,修改如下:表示监听22号端口(也可以改成其他端口,但是要确保端口打开),监听所有的地址,允许root用户远程登录
6.开启防火墙:
sudo ufw enable
7.ssh远程连接默认使用的是22号端口,要让防火墙允许ssh服务通过防火墙(如果改成了其他端口,一样的操作):
sudo ufw allow sshsudo ufw allow 22/tcp
8.修改后重启ssh服务,使其配置生效:
sudo systemctl restart ssh
9.ps查看ssh进程状态:
到这里,就可以通过ssh进行远程连接了。
2.非局域网 远程连接
Attention:ssh只能用于可以相互ping通的主机之间
使用Zerotier可以将接入的设备放在一个虚拟的局域网中,这样你在外网,只要机子配置了Zerotier和另一台机子在一个Network中,就可以直接访问了,废话不多说看操作。
1.登录zerotier 官网 创建一个new network ,复制
NETWORK ID
上图中的
NETWORK ID
就是命令行中的你的network ID
2.Ubuntu安装zerotier
curl -s https://install.zerotier.com |sudobash
3.Ubuntu加入zerotier局域网
sudo zerotier-cli join 你的network ID
4.Windows安装zerotier并加入局域网
客户端下载地址:https://www.zerotier.com/download/
安装之后右键join network,输入你的network ID
5.返回zerotier 官网在Ubuntu和Windows前面打勾 授权
6.在Windows客户端打开ssh连接,输入上图中Ubuntu的Manager IPs,即可连接成功。
3. Zerotier常用命令:
# 启动Zerotiersudo systemctl start zerotier-one.service
# 重启Zerotiersudo systemctl restart zerotier-one.service
# 设置开机自启动sudo systemctl enable zerotier-one.service
# 查看服务状态
zerotier-cli status
# 加入网络
zerotier-cli join 8850xxxxxxxxxxxxxxx
# 离开网络
zerotier-cli leave 8850xxxxxxxxxxxxxxx
# 查看所有网络
zerotier-cli listnetworks
4.远程桌面控制
Ubuntu安装了zerotier后,也可以配合xRDP(远程桌面)进行操作,具体操作参考documentation
远程操作界面如下
总结
且学且分享。
版权归原作者 动弹动弹 所有, 如有侵权,请联系我们删除。