Centos- 搭建内网穿透服务器(NPS)

Centos- 搭建内网穿透服务器(NPS)

frp和nps是两个轻量级内网穿透代理服务器,这两种都是带有web管理,各有特点。

frp常用于路由器插件,web管理比较简陋,主要通过文件配置进行映射。

nps我比较喜欢,web管理很丰富,既可以通过web也可以通过配置文件进行映射。

流程:

  • 一,下载nps
  • 二,修改nps_server配置
  • 三,安装nps_server
  • 四,创建系统服务文件(方便systemctl管理)
  • 五,防火墙放行端口
  • 六,测试

一,下载nps

nps项目源作者项目地址:https://github.com/ehang-io/nps/releases/

根据自己平台下载对于版本server、client客户端

二,修改nps_server配置

解压server包,可以看到nps(二进制程序)、conf(配置目录)、web(web页目录)

https://qnimg.ffing.cn/wp-content/uploads/2021/05/image-61.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

不对配置修改也可以直接使用,但不安全且配置不一定适合自己,这里nps_config的配置,我更改的内容都是我#号注释的地方。(配置详解可查下作者文档https://ehang-io.github.io/nps/#/?id=nps

vi ./conf/nps.conf

appname = nps
 Boot mode(dev|pro)
 runmode = dev
 HTTP(S) proxy port, no startup if empty
#代理服务IP或域名地址
 http_proxy_ip=ffing.fun
#http代理端口
 http_proxy_port=11080
#https代理端口
 https_proxy_port=11443
#启用htts代理
 https_just_proxy=true
 default https certificate setting
#https代理证书(更改为自己的证书路径)
 https_default_cert_file=/opt/crt/ffing.fun.pem
#https代理秘钥(更改为自己的密钥路径)
 https_default_key_file=/opt/crt/ffing.fun.key

#####服务器与客户端之间
 bridge
#客户端与服务端连接方式kcp或tcp
 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.

#公共key!妥善更改密码,否则客户端可以通过此秘钥直接连接服务器!
 public_vkey=123

 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
 p2p_ip=127.0.0.1
 p2p_port=6000

#####web相关配置
 web
#web管理地址
 web_host= ffing.fun
#web管理用户名
 web_username=admin
#web管理密码
 web_password=admin
#web端口
 web_port = 98
 web_ip=0.0.0.0
 web_base_url=
#web页面是否启动ssl
 web_open_ssl=true
#web-ssl证书
 web_cert_file=/opt/crt/ffing.fun.pem
#web-ssl秘钥
 web_key_file=/opt/crt/ffing.fun.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

#web api秘钥
 auth_key=test
#获取服务端authKey时的aes加密密钥,16位
 auth_crypt_key =1234567812345678
#默认允许连接的端口范围
 allow_ports=9001-9999

 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

三,安装nps_server

可根据自己的需求选择安装方式:

1.绿色文件形式运行

nps本身就是二进制文件,可以在目录直接运行,默认调用当前目录的conf/nps.config配置文件;

2.命令安装

nps install

安装后的二进制文件会放在/usr/bin下,配置文件会放在/etc/nps目录下

nps控制命令:nps start|stop|restart|install|uninstall|update

四,创建系统服务文件(方便systemctl管理)

创建nps.service文件,方便后期管理

vi /usr/lib/systemd/system/nps.service

[Unit]
 Description=nps server
 After=network.target
 [Service]
 User=root
 Group=root
 ExecStart=/NPS目录/nps
 Restart=always
 RestartSec=30s
 [Install]
 WantedBy=multi-user.target

重新加载systemctl

systemctl daemon-reload

systemctl控制命令

systemctl start|stop|restart|enabel|disable nps

五,防火墙放行端口

根据nps_server中的配置,放行所需端口

web端口:98

服务桥接端口:8024

http代理端口:11080

https代理端口:11443

默认放行端口:9001-9999

firewall-cmd --add-port=你需要放行的端口号/tcp --zone=public --permanent

firewall-cmd --reload

六,测试

web后台:http://你的服务IP:98

用户名:admin

密码:admin

https://qnimg.ffing.cn/wp-content/uploads/2021/05/image-62.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

npc.exe -server=1.1.1.1:8284 -vkey=客户端的密钥(公共vkey或客户机vkey)

注:公共vkey泄露,任何客户机都可以连接!!!建议

为了方便web管理,又无需客户机人员专业操作(修改conf文件),我想了个方法,就是做个bat,将客户机计算机名作为vkey,这样客户机人员只需要提供计算机名即可。

a.创建一个客户端,将客户机的计算机名作为vkey(验证密钥)

https://qnimg.ffing.cn/wp-content/uploads/2021/05/image-63-1024x595.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

客户机上运行bat内容,自动调用客户机的计算机名称作为vkey,运行bat即可

for /f %%a in ('hostname') do set my_host_name=%%a
npc.exe -server=你服务器地址:端口 -vkey=%my_host_name%
https://qnimg.ffing.cn/wp-content/uploads/2021/05/image-65-1024x484.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

连接成功后,就可以通过web后台去添加TCP代理端口、http代理等。

https://qnimg.ffing.cn/wp-content/uploads/2021/05/image-66.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0
good good study, day day up!

发表评论

textsms
account_circle
email

Centos- 搭建内网穿透服务器(NPS)
frp和nps是两个轻量级内网穿透代理服务器,这两种都是带有web管理,各有特点。 frp常用于路由器插件,web管理比较简陋,主要通过文件配置进行映射。 nps我比较喜欢,web管理很丰富…
扫描二维码继续阅读
2021-05-23