前言
之前听过nps是在内网碰到不出网的时候可以实现内网穿透,最近听师傅说可以docker部署nps然后利用socks5实现隐藏ip(也就是访问ip变成了我们vps从而实现隐藏ip),所以实际搭建了一下。一开始我把nps放到vps把上npc放在我的主机上,但是发现代理出去的ip和地址还是我自己的,不知道是哪里出了问题,最后问了几个师傅才明白其实真正实现socks转发的是npc,而nps只是用来启一个web管理端的,最后把nps、npc都放在vps上后成功实现功能完成隐藏ip
nps一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http、p2p等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等,并且带有功能强大的web管理端。
原理
像nps、frp、ngork都是cs客户端服务端的代理工具,这类工具原理都是通过服务端生成相应的客户端,而生成的客户端才是需要真正走代理的服务器,可能说起来比较绕,用到这里来,其实nps就是用来搭建起web管理页面,并用来生成npc、赋予npc相应的隧道/代理功能,所以最终起socks作用的是npc,而nps只是个管理npc的服务端。
搭建
这里搭建分三部分,docker部署nps、执行npc、本地代理配置。配置用到的环境
1.vps(阿里云centos7)
2.火狐插件FoxyProxy或Proxifier代理软件
docker部署nps
这里我把可能用到的端口都放到了19000:19010,所以首先保证服务器的相应端口开放,如果有宝塔的话也要将端口放行。首先先拉取nps的镜像
docker pull ffdfgdfg/nps
在vps云服务器上做挂载目录(这个目录挂哪都行)
mkdir -p /mnt/sdc/nps/conf
从https://github.com/ehang-io/nps 把代码下载出来,把里面的conf文件夹目录里面的东西拷贝到上面的挂载目录里面(我这里有宝塔所以直接上传了,可以用xftp或者直接下载) 上传到服务器后,修改挂在目录里面的 nps.conf 文件,主要修改 http_proxy_port、 https_proxy_port、web_port 、web_username、web_password。
appname = nps
runmode = dev
http_proxy_ip=0.0.0.0 (官方下载下来没有此项)
http_proxy_port=19000
https_proxy_port=19001
https_just_proxy=true
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key
bridge_type=tcp
bridge_port=19002
bridge_ip=0.0.0.0
public_vkey=123
log_level=7
web_host=a.o.com
web_username=admin
web_password=123
web_port = 19003
web_ip=0.0.0.0
web_base_url=
web_open_ssl=false
web_cert_file=conf/server.pem
web_key_file=conf/server.key
auth_crypt_key =1234567812345678
allow_user_login=false
allow_user_register=false
allow_user_change_username=false
allow_flow_limit=false
allow_rate_limit=false
allow_tunnel_num_limit=false
allow_local_proxy=false
allow_connection_num_limit=false
allow_multi_ip=false
system_info_display=false
http_cache=false
http_cache_length=100
http_add_origin_header=false
disconnect_timeout=60
接下来启动nps服务,设置对外映射端口
docker run -d -p 19000-19010:19000-19010 -v /mnt/sdc/nps/conf:/conf –name=nps ffdfgdfg/nps
访问vpsip:19003进入web管理页面,使用上面设置的admin:admin登录 来到客户端点击新增,填一个备注,下面三个都选是即可
创建完成后为其添加一个socks隧道,模式就是socks,id是第一张图里的,端口我这里写19005,这个端口是后面主机上开启socks代理对应的端口
docker运行nps
直接在https://github.com/ehang-io/nps/releases/tag/v0.26.10下载一个linux的客户端 也可以使用命令下载
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz
tar -zxvf linux_amd64_client.tar.gz
解压出一个npc一个conf,这里客户端的这个conf可以不配置直接使用,不配置的使用命令在web管理端查看 在npc所在位置执行
本地代理配置
这里我使用火狐插件Foxyproxy,也可以使用Proxifier或者其他的一些工具
放一张配置图,这里ip就填vps的ip,端口填刚刚nps添加socks隧道时候填的19005
最后执行效果 参考nps内网穿透,docker安装,保姆级教程,学不会找我
|