基于 easytier 的双 VPS 高可用内网穿透:安全访问 Proxmox 家庭内网实战

大家好,本人家里有一个服务器安装了个系统Proxmox。但是我长期在外无法访问到服务器,虽然家里的电信宽带是有公网IP的但是感觉不是很安全,所以为了能够访问到家里 Proxmox 服务器,就萌生了本教程。

我手头上还有几台云服务器,刚好能够自建服务器来作为easytier的中转。为什么是双VPS?主要是怕有一台服务器挂了,然后访问不到那就完蛋了,所以准备了两台服务器来确保他的高可用性。

这是一个大体的网络框架:

        公网 VPS A              公网 VPS B
   easytier 节点           easytier 节点
   控制 + 中继              控制 + 中继
        |                        |
        ----------- 内部同一网络 -----------
                     |
          Proxmox 宿主机(LAN 转发)
                     |
            Windows / macOS

设备列表:

公网 VPS × 2:

  • VPS-A / VPS-B
  • easytier 控制 + 中继

家里:

  • Proxmox 宿主机(转发整个内网)

客户端:

  • Windows / macOS 远程控制 Proxmox

一、配置公网服务器

1、安装easytier

在两台公网服务器分别输入以下命令来安装 EasyTier:

wget -O /tmp/easytier.sh "https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh" && sudo bash /tmp/easytier.sh install --gh-proxy https://ghfast.top/

安装完后你会看见:

软件默认的配置文件路径:/opt/easytier/config/default.conf 初始的配置文件内容如下:

root@******:~# cat /opt/easytier/config/default.conf
instance_name = "default"
dhcp = true
listeners = [
    "tcp://0.0.0.0:11010",
    "udp://0.0.0.0:11010",
    "wg://0.0.0.0:11011",
    "ws://0.0.0.0:11011/",
    "wss://0.0.0.0:11012/",
]
exit_nodes = []
rpc_portal = "0.0.0.0:0"

[[peer]]
uri = "tcp://public.easytier.top:11010"

[network_identity]
network_name = "default"
network_secret = "default"

[flags]
default_protocol = "udp"
dev_name = ""
enable_encryption = true
enable_ipv6 = true
mtu = 1380
latency_first = false
enable_exit_node = false
no_tun = false
use_smoltcp = false
foreign_network_whitelist = "*"
disable_p2p = false
p2p_only = false
relay_all_peer_rpc = false
disable_tcp_hole_punching = false
disable_udp_hole_punching = false

2、配置内容

我们基本上想设置自己的私有服务器仅自己能够访问这个虚拟局域网的话,一定要配置的东西就是:

[network_identity]
network_name = "default"
network_secret = "default"
  • network_name 就是网络名称,相当于你的房间号(也可以理解成设备名称
  • network_secret 就是网络密钥密钥不对就无法加入这个虚拟网络当中

当然你想要更安全避免不必要的端口扫描,你也可以修改默认的端口:

listeners = [
“tcp://0.0.0.0:11010”,
“udp://0.0.0.0:11010”,
“wg://0.0.0.0:11011”,
“ws://0.0.0.0:11011/”,
“wss://0.0.0.0:11012/”,
]

多种协议,任君挑选!

如何生成 network_secret 呢?输入以下命令即可输出:

openssl rand -hex 32
注意要保存下来 不要泄漏出去!

将网络名称和网络密钥分别填到上面,重启软件应用更改:

systemctl restart easytier@default

查看重启之后的软件状态:

systemctl status easytier@default

3、可选项

你其实你会发现默认就连接着公共服务器

[[peer]]
uri = "tcp://public.easytier.top:11010"

如果你比较介意的话,你可以直接删掉:

#[[peer]]
#uri = "tcp://public.easytier.top:11010"

二、配置设备连接

其实的话其实可以不用特地去区分“控制设备”“被控设备”之间的区别,本身设备加入到公网服务器节点的时候,也差不多是加入此网络(“控制设备”也是被分配一个IP)。你可以理解成:加入这个公网服务器节点,人人都是“被控设备”

所以我们先去官网下载对应的版本:https://github.com/EasyTier/EasyTier/releases

1、命令行版本配置

➀“被控设备”(相当于Proxmox宿主机)

我们这边的话先给大家讲解下命令行版本的配置,首先的话先解压我们的zip文件,解压之后是有几个二进制文件(展示以 macOS 为主 其实Linux也能作为参照)

解压到你想要的地方,并且cd 进去,我们就可以直接启动软件,进入到我们公网服务器节点当中:

sudo ./easytier-core -d --network-name <你的网络名称> --network-secret <你的网络密钥> -p tcp://服务器地址:端口

我们是双 VPS 公网服务器 可以额外添加这个参数搞更多的服务器:

-p tcp://1.1.1.1:11010 -p udp://1.1.1.2:11011

直接输入这个命令即可启动并且连接到公网服务器当中:

启动成功的样子

启动完成后你会发现已经给你分配了一个虚拟IP默认的IP段为 10.126.126.X ),如果你需要指定相关的IP段可以添加一下参数来启动:

-i 10.11.11.0/24

这样的话加入的设备都会分配成 10.11.11.X 这个虚拟IP

➁“控制设备”(Windows/macOS)

但是我实在实在是不想被分配一个IP怎么办?很简单 你只需要去掉命令中的参数 -d 即可!

sudo ./easytier-core --network-name <你的网络名称> --network-secret <你的网络密钥> -p tcp://服务器地址:端口

-d 这个参数解释如下:自动分配虚拟 IP,默认分配 10.126.126.0/24 网段,可使用 -i 10.11.11.0/24 指定其他虚拟 IP。

去掉之后就不会自动分配虚拟IP了

2、图形版本配置

主页面 首先更换成中文

➀“被控设备”(相当于Proxmox宿主机)

注意:一定要点击红色框框部分才是添加!
这样才是成功添加上自建服务器
登陆成功的页面 可以尝试通过 ping 来测试各个主机之间的联通性:
ping 10.126.126.1

➁“控制设备”(Windows/macOS)

这个没折腾明白 关掉 DHCP 还是给我分配了一个虚拟内网IP

三、配置Proxmox服务器

1、安装 easytier

这边稍微做一个区分,我们就不用一键脚本来进行安装了!首先从 Github 下载项目下来:(项目下载地址:https://github.com/EasyTier/EasyTier/releases

https://gh-proxy.org/https://github.com/EasyTier/EasyTier/releases/download/v2.4.5/easytier-linux-x86_64-v2.4.5.zip

解压压缩包:

unzip easytier-linux-x86_64-v2.4.5.zip
一共有四个文件(记得要先进入文件夹中):
cd easytier-linux-x86_64

把这四个文件一起丢到 /usr/bin (你想丢哪里都行,自己看

mv ./easytier-* /usr/bin/

我们主要用到的两个软件是 easytier-cli 和 easytier-core,所以我们给这两个软件权限:

chmod +x /usr/bin/easytier-core 
chmod +x /usr/bin/easytier-cli

你可以通过执行以下命令直接启动 easytier:

easytier-core

2、测试环境

接下来的话我们就要配置服务启动了(这次就不依赖配置文件来进行了 做一个区分):

首先的话先自己补充好以下命令,先运行测试:

easytier-core -i <给你的proxmox设置一个专属内网地址 方便区分> --network-name <你的网络名称> --network-secret <你的网络密码> -p tcp://<服务器地址>(不止tcp 其他都可以)

因为我们教程是 双VPS环境 所以可以这样多增加一个服务器地址:

-p tcp://1.1.1.1:11010 -p udp://1.1.1.2:11011
执行试试看能不能连接成功 不放心的话故意修改错密码 在尝试看看
密码错误的提示

3、部署环境

我们直接搞一个 systemd 的服务自启,先创建一个 service 文件:

vim /etc/systemd/system/easytier-core.service

里面的内容如下:

[Unit]
Description = EasyTier Core Service
After = network.target

[Service]
ExecStart = /usr/bin/easytier-core -i <给你的proxmox设置一个专属内网地址 方便区分> --network-name <你的网络名称> --network-secret <你的网络密码> -p tcp://<服务器地址>(不止tcp 其他都可以)

[Install]
WantedBy = multi-user.target

配置好之后记得保存。设置开机自启动:

systemctl enable easytier-core.service

启动 easytier-core:

systemctl start easytier-core.service

查看 easytier-core 状态:

systemctl status easytier-core.service

4、测试环境

还是和前面一样 不管你用cli 还是 gui 版本 都可以连接网络后对你设置的 proxmox 内网地址进行测试!

感谢各位的阅读!

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇