使用ZeroTier ssh远程访问内网主机

发布时间 2023-08-06 02:51:04作者: 云吱

zerotier官网:https://www.zerotier.com/

官方文档:https://zerotier.atlassian.net/wiki/spaces/SD/overview

一、目的

假设存在网络拓扑如下图:
image

内网中的主机A有公网访问权限,可以和PC通信。但是由于主机A没有公网IP或ssh等服务端口不向外网开放(主机A的服务端口只向内网机器开放),导致PC无法使用ssh等工具直接访问主机A。
我们要做的就是通过ZeroTier给PC、主机A创建一个overlay内网,忽略underlay,让PC、主机A以为双方都在同一个局域网内。这样PC就可以用ZeroTier内网IP来直接访问主机A了。

二、创建一个网络

2.1 创建网络

进入zerotier官网,用邮箱注册一个账号。然后进入网络列表,点击Create A Network按钮创建一个网络.
image

下方列表中会出现一个网络ID,点击网络ID进入即可这个网络的设置界面。
image
记住这个网络ID,如图中为a09acf0233953bab

2.2 设置网络

  1. setting
    image

  2. 设置网段
    这里随便选一个,也可以保持默认。
    如下图中,内网网段为172.22.0.0/16
    image

三、加入网络

安装ZeroTier软件

安卓平台建议使用:ZerotierFix
其他平台直接从官网下载

3.1 Windows

右键点击ZeroTier托盘图标——Join New Networdk——输入2.1中你获取的网络ID。本文中是a09acf0233953bab。点击Join加入网络。
image

回到网络设置网页,可以看到Members多了一个成员。
勾选权限,设置一个名字,便于区分。
image

3.2 Linux——Ubuntu

1.安装

输入以下命令在ubuntu中安装zerotier:

curl -s https://install.zerotier.com | sudo bash

# 设置开机自启
sudo systemctl enable zerotier-one
# 启动服务
sudo systemctl start zerotier-one

卸载命令:

sudo dpkg -P zerotier-one
sudo rm -rf /var/lib/zerotier-one/

2.加入网络

运行以下命令并将<NETWORK-ID>替换为网络ID:

sudo zerotier-cli join <NETWORK-ID>

本文中即为:

sudo zerotier-cli join a09acf0233953bab

如果连接成功,应打印200 join OK输出。

同理,回到网络设置网页,可以看到Members多了一个成员。权限打勾,设置一个名字,便于区分。
记录下主机A的内网IP。本文中为172.22.0.214
image

四、远程连接

1.确认网络权限

当你把所有设备都连接到网络中,记得将网络访问权限设置为Private,以增强安全性。
image

2.远程连接

以Windows连接Ubuntu为例,双方都已启动ZeroTier并加入同一个网络。
直接ssh主机A的内网IP即可:
image