自动摘要
正在生成中……
服务端 nps
在vps安装,我使用 docker的方式:
注意:需要在防火墙开放 8024 (默认端口)供客户端连接。
services:
nps:
image: yisier1/nps
container_name: nps
network_mode: host
volumes:
- ./conf:/conf
restart: always
appname = nps
#Boot mode(dev|pro)
runmode = dev
#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=8001
https_proxy_port=8002
https_just_proxy=true
#default https certificate setting
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key
##bridge
bridge_type=tcp
bridge_port=8024
bridge_ip=0.0.0.0
# Public password, which clients can use to connect to the server
# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file.
public_vkey=pub_vkey
#Traffic data persistence interval(minute)
#Ignorance means no persistence
#flow_store_interval=1
# log level LevelEmergency->0 LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7
log_level=7
#log_path=nps.log
#Whether to restrict IP access, true or false or ignore
#ip_limit=true
#p2p
#p2p_ip=127.0.0.1
#p2p_port=6000
#web
web_host=web_host.example.com
web_username=web_username
web_password=web_password
web_port = 8003
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
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps
#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)
#Remove comments if needed
#auth_key=test
auth_crypt_key =cry_key
#allow_ports=9001-9009,10001,11000-12000
#Web management multi-user login
allow_user_login=false
allow_user_register=false
allow_user_change_username=false
#extension
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
#cache
http_cache=false
http_cache_length=100
#get origin ip
http_add_origin_header=false
#pprof debug options
#pprof_ip=0.0.0.0
#pprof_port=9999
#client disconnect timeout
disconnect_timeout=60
其中最重要的是
web_host=web_host.example.com
web_username=web_username
web_password=web_password
web_port = 8003
是web访问相关的,可以通过反代 8003 加入https, 建议使用npm或openresty。
web添加客户端
会得到一个唯一验证密钥
客户端连接
docker 模式
比较简单
cat compose.yml
services:
npc:
image: yisier1/npc
container_name: npc2alihost
restart: always
network_mode: host
command: -server=${HOST}:${PORT} -vkey=${VKEY}
cat .env
HOST=nps的地址
PORT=8024
VKEY=前面的唯一验证密钥
windows
我在win7下折腾了好久,尝试了默认的安装服务,和自己写计划任务开机启动,还是使用了安装系统服务。
下载客户端 ,解压到目录比如 I:\npc
,包含npc.exe
和conf/npc.conf
打开命令行执行npc install
会安装到系统服务。
修改npc.conf 文件:
[common]
server_addr=nps主机:8024
vkey=前面的唯一验证密钥
conn_type=tcp
需要注意的是这个配置文件要使用 LF 进行换行,如果使用windows默认的CL/LF换行,启动时会报错,提示超时。可以安装notepadd++
查看不可见字符确认。
进入系统服务点击start,如果成功,在网页的客户端列表可以看到这两项均为绿色。
使用私密代理远程桌面(rdp)
在指定的windows客户端新建隧道
设置如下
填入并记住这个私密代理唯一标识密钥 , 比如 secret
在其他客户端比如mac,这个mac的客户端也需要先在web添加客户端并获取VKEY
(参考第二步)
连接这个私密代理的远程桌面,这里也使用docker。
services:
officerdp:
image: yisier1/npc
restart: always
network_mode: host
command: -server=${HOST}:${PORT} -vkey=${VKEY} -type=tcp -password=私密代理唯一标识密钥 -local_type=secret -local_port=13389
启动后远程桌面客户端连接本地的13389端口可以连入windows的远程桌面。
Update 20241226
windows将npc加入服务后经常会掉线,在浏览文档后发现有一个配置参数可以断线重连
[common]
auto_reconnection=true
先测试一段时间看看