nps是一款轻量级、功能强大的内网穿透代理服务器。本文介绍 以 VPS为服务器端,树莓派为客户端, 使用 nps 进行内网穿透 。使在本地动态ip的环境下搭建网站、ftp等服务器,实现远程访问局域网资源、远程桌面等功能。
1 安装
nps 项目 Releases 中包含了编译好的安装包,可以根据系统版本直接下载使用。
wget https://github.com/cnlh/nps/releases/download/v0.24.0/linux_amd64_server.tar.gz
tar -zxvf linux_amd64_server.tar.gz
cd nps
sudo ./nps
这时访问 服务器ip:8080
即可访问后台。
初始用户名:admin 密码:123
2 配置文件
配置文件为 conf/nps.conf
,首先要修改其中所有的账户密码,不要使用默认的。
public_vkey 客户端与服务器连接时使用的密钥
web_username 后台管理用户名
web_password 管理后台用户密码
auth_key web api密钥
auth_crypt_key 获取服务端authKey时的aes加密密钥,16位
如果不使用 web api ,可以直接在 auth_key
、auth_crypt_key
两行前添加 #
以注销。
3 客户端配置
客户端安装与服务器端类似。本文使用树莓派作为客户端,所以使用的是linux_arm64_client.tar.gz
。
wget https://github.com/cnlh/nps/releases/download/v0.24.0/linux_arm_client.tar.gz
tar -zxvf linux_arm_client.tar.gz
cd nps
登录 nps 服务器后台, 客户端
>> 新增
填写完信息后再点击 新增
。这时在 client list 中将出现刚刚建立的客户端条目。点击条目最左侧的 +
,条目下方将出现 命令
。将其粘贴到客户端中运行,这样就就完成了服务器与客户端的连接。刷新服务器后台网页,客户端条目 status
项 显示为 online
。
接下来配置映射关系。点击 客户端条目
最右侧的 tunnel
,然后在新页面中点击左上角的 新增
。填写完信息后再点击 新增
,映射即可生效。
创建文件 /etc/systemd/system/nps.service
,加入一下内容以使用 systemctl
进行守护。 ExecStart
内容替换成 web界面中显示的命令。
[Unit]
Description=npc - convenient proxy server client
After=rc-local.service
[Service]
Type=simple
User=pi
Group=pi
WorkingDirectory=/home/pi/nps
ExecStart=/absolutely path to/npc -server=ip:port -vkey=web界面中显示的密钥
Restart=always
[Install]
WantedBy=multi-user.target
4 性能优化
在弱网环境下,可以牺牲 10%~20%带宽换取平均延迟降低 30%~40% 。修改 conf/nps.conf
修改 bridge_type
为 kcp
,同时将客户端命令中 type=tcp
修改为 type=kcp
。
web设置中客户端默认开启了压缩和加密。压缩在一定情况下会导致数据出错。如果公司内网防火墙对外网访问进行了流量识别与屏蔽,那么可以开启加密。没有需求时可以关闭加密,提升访问速度。