家里移动宽带,没有公网 IP ,之前一直使用简单的【Tailscale】来远程访问家里群晖,缺点是每个访问的客户端都得安装 Tailscale,一直都想试试内网穿透,没时间研究具体怎么搞,看到博主“ 可爱的小 Cherry”发的一篇公众号文章后,决定跟着试试,来实现通过阿里云服务器代理,实现内网穿透访问家庭黑群晖。
NPS,一款轻量级、功能强大的内网穿透代理服务器。支持 tcp、udp 流量转发,支持内网 http 代理、内网 socks5 代理,同时支持 snappy 压缩、站点保护、加密传输、多路复用、header 修改等。支持 web 图形化管理,集成多用户模式。
NPS 阿里云服务端
下载镜像
SSH 客户端,在阿里云和 NAS 分别下载镜像。
docker pull ffdfgdfg/nps
配置参数
从地址【https://github.com/ehang-io/nps/tree/master/conf】下载 conf 配置文件夹,并解压上传到阿里云。
# 阿里云端目录
mkdir -p /opt/1panel/docker/compose/nps/conf/
cd /opt/1panel/docker/compose/nps/conf/
# 创建空的配置文件clients.json、hosts.json、tasks.json
touch /opt/1panel/docker/compose/nps/conf/clients.json /opt/1panel/docker/compose/nps/conf/hosts.json /opt/1panel/docker/compose/nps/conf/tasks.json
# 下载示例配置文件npc.conf、nps.conf、server.key、server.pem、multi_account.conf,建议直接下载下来,配置好直接上传到conf目录。
curl -o /opt/1panel/docker/compose/nps/conf/npc.conf https://raw.gitmirror.com/ehang-io/nps/master/conf/npc.conf && curl -o /opt/1panel/docker/compose/nps/conf/nps.conf https://raw.gitmirror.com/ehang-io/nps/master/conf/nps.conf && curl -o /opt/1panel/docker/compose/nps/conf/server.key https://raw.gitmirror.com/ehang-io/nps/master/conf/server.key && curl -o /opt/1panel/docker/compose/nps/conf/server.pem https://raw.gitmirror.com/ehang-io/nps/master/conf/server.pem && curl -o /opt/1panel/docker/compose/nps/conf/multi_account.conf https://raw.gitmirror.com/ehang-io/nps/master/conf/multi_account.conf
修改 /opt/1panel/docker/compose/nps/conf/nps.conf
内的配置文件。主要修改的是第 7、8、16、42 行的 4 个端口号。其次是修改 39-41 行的 webui 登录地址、账号、密码信息。
# 建议直接下载下来,配置好直接上传
vi /opt/1panel/docker/compose/nps/conf/nps.conf
启动阿里云的 NPS 容器
推荐以 docker-compose 形式启动安装容器,创建一个 docker-compose.yml
文件:
version: '3.8'
services:
nps:
image: ffdfgdfg/nps
container_name: nps
network_mode: host
volumes:
- /opt/1panel/docker/compose/nps/conf:/conf
restart: always # 可选项,根据需要添加
保存这个文件为 docker-compose.yml
,然后在该文件所在目录运行以下命令来启动容器:
docker-compose up -d
也可以 docker-cli 形式,直接 SSH 客户端执行下面的命令:
docker run -d --name nps --net=host -v /opt/1panel/docker/compose/nps/conf:/conf ffdfgdfg/nps
NPS 服务端设置
来到阿里云【安全组】策略下,点击【管理规则】,根据我们之前自己修改的端口进行开放,每个端口中间用逗号分隔,这里的【授权对象】相当于 IP 白名单。
设置完成以后,我们打开【阿里云 IP:51918】,就会进入到 nps 的配置页面,使用刚才的 nps.conf 里设置的 web_username
,web_password
登录。登陆后选择左侧【客户端】-【新增】,按照图片设置的增加一个客户端。
完成以后,可以在客户端列表里看到刚才设置的密钥(或随机生成的密钥),我们复制备用,一会 NAS 端创建 npc 客户端需要使用。
NPS NAS 客户端
下载镜像
SSH 客户端,在阿里云和 NAS 分别下载镜像。
docker pull ffdfgdfg/nps
配置参数
首选在 NAS 创建目录,下载配置文件。
# NAS端目录
mkdir -p /volume1/docker/npc/conf
cd /volume1/docker/npc/conf
# 下载示例配置文件,建议直接网页下载,修改好上传到conf文件夹。
curl -o /volume1/docker/npc/conf/npc.conf https://raw.gitmirror.com/ehang-io/nps/master/conf/npc.conf
然后修改 NAS 端 /volume1/docker/npc/conf/
路径下的 npc.conf 配置文件,主要修改第 2、4 行。让我们的 npc 客户端可以访问到服务端。
启动 NAS 的 npc 容器
同样推荐以 docker-compose 形式安装,创建一个 docker-compose.yml
文件:
version: '3.8'
services:
npc:
image: ffdfgdfg/npc
container_name: npc
network_mode: host
volumes:
- /volume1/docker/npc/conf/:/conf
command: -config=/conf/npc.conf
restart: always # 可选项,根据需要添加
保存这个文件为 docker-compose.yml
,然后在该文件所在目录运行以下命令来启动容器:
docker-compose up -d
也可以 docker-cli 行驶,直接 SSH 客户端执行下面的命令:
docker run -d --name npc --net=host -v /volume1/docker/npc/conf/:/conf ffdfgdfg/npc -config=/conf/npc.conf
配置内网穿透的代理
回到阿里云上部署的 nps 管理页面,可以看到客户端列表里的【连接】已经变为在线,这说明我们的 NAS 侧已经顺利连接到服务端了。
这里以群晖 DSM 为例,点击左侧的 TCP 代理,填入群晖 DSM 的内网访问地址,然后设置一个阿里云端的访问地址(③位置填写的端口,需要在阿里云安全策略中放入白名单),保存以后就可以使用阿里云 IP:③端口,来访问内网了。
感谢博主 " 可爱的小 Cherry"。
评论