内网穿透工具:nps-npc简单实现端口代理
1、简介
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
2、特点
- Go语言编写
- 支持跨平台
- 支持多种协议的代理
- web管理端
3、准备工作
- 一台有公网IP的服务器(VPS)运行服务端(NPS);
- 一个或多个运行在内网的服务器或者PC运行客户端(NPC);
4、NPS-NPC下载地址
5、服务端NPS使用方法
5.1、安装配置
找到自己服务器相应版本的server,示例如下:
cd ~
wget https://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gz
tar xzvf linux_amd64_server.tar.gz
cd ~/nps
在nps目录下面会有一个nps可执行文件、conf配置目录和web网页目录,我们只需要修改conf/nps.conf即可:
vim conf/nps.conf
需要改一下#web下面的几个参数
web_host= 服务器IP或者域名
web_username= admin(登录用户名)
web_password= 你的密码
web_port=8080(web管理端口)
修改#bridge 可以更改 NPC的连接端口。比如我们拿到一台权限受限的服务器,有防火墙,可能只有部分端口(80,443)可以出网,就需要修改成出网端口。
##bridge
bridge_type=tcp
bridge_port=443 # 修改连接端口
bridge_ip=0.0.0.0
注意:
bridge 是服务端类型、地址、监听端口,把端口改成自己的就行。
public_vkey是客户端连接服务端认证用的,但是此处修改不生效,不知道为啥,不用管就行
web区块,这儿是服务端web访问的配置,看这配就行,官方说端口可以和bridge里一致,但实际测试发现不行,要两个不同的端口,其它都没用,默认就好
5.2、启动
#Mac/Linux
sudo ./nps install
./nps test|start|stop|restart|status 测试配置文件|启动|停止|重启|状态
#Windows
管理员身份运行cmd,进入安装目录
nps.exe install
nps.exe test|start|stop|restart|status 测试配置文件|启动|停止|重启|状态
6、客户端NPC安装方法
6.1、安装配置
下载win版本的客户端,例如:
windows_amd64_client.tar.gz
解压后进入conf目录下,编辑npc.conf文件,除了 server_addr 和服务端 bridge 配置一致外,其它不用动:
[common]
server_addr=www.baidu.com:8888
conn_type=tcp
vkey=123
auto_reconnection=true
max_conn=1000
flow_limit=1000
rate_limit=1000
crypt=true
compress=true
disconnect_timeout=60
6.2、启动
Liunx:./npc -server=你的IP:8024 -vkey=唯一验证密码 -type=tcp
Win:npc.exe -server=你的IP:8024 -vkey=唯一验证密码 -type=tcp
注意:
你的IP:指的是安装NPS服务端IP地址;
端口:是服务端与客户端的bridge_port端口;
唯一验证密码:是服务端public_vkey设置的公钥
客户端启动不起来,一闪而过的问题:杀毒软件将nps.exe当做病毒删掉了。
7、服务端配置客户端访问
登录服务端管理地址:你的公网服务器IP(web_host):你的web访问端口(web_port),用配置的用户名(web_username)密码(web_password)登录(你的登录用户:你的密码)
在客户端这儿新增就行:
注意:相关端口要放开,或者全部放开