Nps实现内网穿透,电脑免费变云服务器
2022-7-15|2022-12-11

tangly1024
一、NPS 概述
NPS 是一款轻量级、功能强大的内网穿透代理服务器。支持 tcp、udp 流量转发,支持内网 http 代理、内网 socks5 代理,同时支持 snappy 压缩、站点保护、加密传输、多路复用、header 修改等。支持 web 图形化管理,集成多用户模式。管理系统比 FRP 方便很多,更容易上手。
二、配置要求
- 一台拥有公网 IP 的服务器
- 开放端口例如:(8080,8024,80,443)等可以不是这些端口,nps可以配置任意端口,实现与其它服务共存
- 安装 nps 软件包(源码安装、linux、darwin、windows)几种系统安装方法
三、相关文档
- NPS 配置文档:https://ehang-io.github.io/nps/#/
四、环境说明
演示环境的服务器端是Centos云服务器;客户端是本地的CentOS虚拟机。
五、演示安装
1.服务端
- 使用 ftp 等工具上传 linux_amd64_server.tar.gz 到服务器指定目录

- 安装nps
tar -zxvf linux_amd64_server.tar.gz # 解压 ./nps install # 将脚本安装复制到系统的bin目录: nps支持以下指令 ["start" "stop" "restart" "install" "uninstall"]
此时 直接执行命令
nps
即可在控制台启动nps并实时查看日志。- 修改nps配置 (可选)
vi /etc/nps/conf/nps.conf
(不是修改./conf/nps.conf
配置)
由于我的服务器已经安装了nginx,所以会出现端口占用无法启动,解决方法:修改 /etc/nps/conf/nps.conf 文件中的端口配置:
我将其中默认的80 和 443 改为了8010 8020 , 同时这个文件也可以修改面板后台的端口号和账号密码等

- 修改后重启面板
nps stop && nps start
- 启动后访问面板 http://ip:8080/ 默认账号密码是admin/123
- 登录面板分配客户端唯一验证秘钥

2. 客户端
- 使用 ftp 等工具上传 linux_amd64_client.tar.gz 到你的内网电脑指定目录

- 解压安装
tar -zxvf linux_amd64_client.tar.gz ./npc install
- 链接服务端
这里的ip是你的服务器地址,port则是nps服务端的brige_port 默认是8024
npc -server=ip:port -vkey=[客户端唯一验证秘钥]

nohup
.. &
)nohup npc -server=ip:port -vkey=[客户端唯一验证秘钥] &
3. 配置转发的规则
- 查看客户端状态
此处可以看到一个客户端ID为2,连接状态为在线。

- 添加tcp转发
如下配置表示将服务端的 123 端口 转发到 局域网内部 192.168.x.x的22端口。其他的UDP、SOCKS、HTTP也是类似的配置不再赘述。

4. 测试连接
用SSH客户端 连接
[服务器IP]:[123端口]
即可实现访问 [内网服务器]:[22端口]
5. 开机自启动
2、npc自启动配置
(1)建立启动脚本编写--start.sh
#!/bin/bash cd /[path_to_nps] echo 'pwd'|sudo -S nohup ./npc >file.out 2>&1 &
可以将start.sh与npc服务放一起
(2)配置npc.service文件
[Unit] Description=npc After=network.target [Service] Type=forking ExecStart=/home/xxx/xxx/linux_amd64_client/start.sh Restart=always RestartSec=5 PrivateTmp=true [Install] WantedBy=multi-user.target
将npc.service放置到/lib/systemd/system中
(3)启动并测试
systemctl daemon-reload systemctl enable npc #设置开机启动 systemctl start npc #开启服务 systemctl status npc #查看状态
最后reboot测试,查看是否开机自启。
总结
NPS NPC , 的配置安装都很便捷,如果你有一台自己的VPC云服务器,可以尝试一下,将你的家庭本地电脑映射到外网服务器。
参考文章
- Twikoo
- Waline
- Giscus
- Cusdis