只使用一个pve lxc容器搞定Tailscale内网穿透,实现多主机轻松访问
本文主要讲述使用pve的lxc容器来安装tailscale并设置数据转发实现内网穿透,只用一台设备即可访问家里所有设备。
详细视频:
创建lxc容器
- PVE下载CT模板,此处使用的是
Debian12 - 创建一个非特权的容器,模板选择刚才下载的
Debian12, 网络选择静态IP,选择一个当前网络下还没使用的IP,网关设置为路由器的IP。 其余设置默认即可 - 安装完成后, 先不要启动,需要修改一些配置
- 在 pve 宿主机中,执行如下命令并记录返回结果,记录
10, 200这两个数字,后面需要用到。
1 | |
- 在 pve 宿主机中,修改
/etc/pve/lxc/104.conf文件, 其中104就是容器的ID。新增如下两行:其中 10 和 200 是上一步中获取到的值。
1 | |
安装tailscale
本步骤所有操作都是在容器内进行的,不是pve主机上。
- 启动容器,并进入容器内部。用户名
root, 密码就是之前创建容器时设置的密码 - 允许远程登录,方便后续通过其他ssh客户端操作。修改文件
/etc/ssh/sshd_config, 将其中的PermitRootLogin一行的注释放开,并设置为yes。
1 | |
- 重启ssh服务,执行命令:
systemctl restart ssh - 安装tailscale, 命令如下, 需要一步一步执行:
1 | |
- 设置tailscale开机自启。在
/etc/systemd/system下新建一个配置文件:tailscale.service, 文件内容如下, 需要替换authKey和自己网络的网段。
1 | |
- 使开机自启生效,执行如下命令:
1 | |
开启容器转发功能
- 使用自己的账号登录tailscale网页端,然后获取authKey, 获取authKey的具体位置如下:
- 开启 lxc 的转发功能,进入 lxc 容器, 编辑
/etc/sysctl.conf配置文件(一般是有的,如果没有就新建),修改如下两行:
- 开启 lxc 的转发功能,进入 lxc 容器, 编辑
1 | |
- 修改完成后, 使其生效, 执行命令:
sysctl -p /etc/sysctl.conf - 重启
tailscale,执行命令systemctl start tailscale.service - 当 tailsale 成功连接之后, 登录 web 端,在对应设备上操作如下:
- 因为我们这个节点是作为转发的,所以需要将key设置为永不过期,点击
disable key expiry - 允许子网路由。点击
Edit route setting, 在弹出框中将 subnet routes 勾选上,并保存。 - 至此, 当其他设备连接上 ==tailsca==le 之后,就可以直接通过局域网 IP 访问和 lxc 容器属于同一网段的其他设备。
- 因为我们这个节点是作为转发的,所以需要将key设置为永不过期,点击
其他客户端使用
直接去tailscale官网下载对应的客户端,然后使用同一个账号登录即可。
此时在外网就可以直接使用局域网的IP访问,比如10.0.0.1等。
tailscale一些常用命令
- 查看运行状态(可以判断是走的中继还是直连):
tailscale status- 中继:出现
relay字段 - 直连:出现
direct字段
- 中继:出现
- 查看IP:
tailscale ip - 检查网络(可以查看中继节点的延迟):
tailscale netcheck
只使用一个pve lxc容器搞定Tailscale内网穿透,实现多主机轻松访问
https://tianyaoxiayu.top/posts/29195.html