NPS介绍
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持TCP、UDP流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、游戏私服、我的世界服务器等等……),此外还支持内网http代理、内网socks5代理、p2p等,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。
几种通过自己服务器实现内网穿透的教程
基于Docker的FRP内网穿透部署
服务器搭建(FRPS)
创建配置文件
# 创建存放目录sudo mkdir /etc/frp# 创建frps.ini文件nano /etc/frp/frps.ini
frps.ini内容如下:
[common]# 监听端口bind_port = 7000# 面板端口dashboard_port = 7500# 登录面板账号设置dashboard_user = admindashboard_pwd = spoto1234# 设置http及https协议下代理端口(非重要)vhost_http_port = 7080vhost_https_port = 7081# 身份验证token = 12345678
#服务器镜像:snowdreamtech/frps#重启:always#网络模式:host#文件映射:/etc/frp/frps.ini:/etc/frp/frps.inidocker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
中转客户端配置(FRPC)
服务器镜像:snowdreamtech/frpc重启:always网络模式:host文件映射:/路径/frp/:/etc/frp/
配置文件示例:
[common]# server_addr为FRPS服务器IP地址server_addr = x.x.x.x# server_port为服务端监听端口,bind_portserver_port = 7000# 身份验证token = 12345678[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 2288# [ssh] 为服务名称,下方此处设置为,访问frp服务段的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。# type 为连接的类型,此处为tcp# local_ip 为中转客户端实际访问的IP # local_port 为目标端口# remote_port 为远程端口[ssh]type = tcplocal_ip = 192.168.1.229local_port = 80remote_port = 18022[unRAID web]type = tcplocal_ip = 192.168.1.229local_port = 80remote_port = 18088[Truenas web]type = tcplocal_ip = 192.168.1.235local_port = 80remote_port = 18188[speedtest]type = tcplocal_ip = 192.168.1.229local_port = 6580remote_port = 18190[webdav]type = tcplocal_ip = 192.168.1.235local_port = 18080remote_port = 18189[RDP PC1]type = tcplocal_ip = 192.168.1.235local_port = 3389remote_port = 18389
如果监听服务可以有IP限制的设置,需要允许的访问IP为中转内网设备的内网IP;
FRP由于端口会暴露在互联网上,虽然说使用方便但安全性较差;
基于Zerotier根服务器的内网穿透部署
创建根服务器(参考教程:https://github.com/Jonnyan404/zerotier-planet)
docker run --restart=on-failure:3 -d --name ztncui -e HTTP_PORT=4000 -e HTTP_ALL_INTERFACES=yes -e ZTNCUI_PASSWD=mrdoc.fun -p 4000:4000 keynetworks/ztncui
群晖 DSM 7.x 安装Zerotier客户端
登录SSH并创建虚拟网络设备TUN
#获取权限sudo -i#创建“创建虚拟网络设备TUN”的脚本,并设为开机自动运行echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh#给予脚本运行权限chmod a+x /usr/local/etc/rc.d/tun.sh#运行脚本创建TUN/usr/local/etc/rc.d/tun.sh#确认TUN是否创建成功ls /dev/net/tun
创建存放配置文件的目录
mkdir /var/lib/zerotier-one
创建Zerotier应用容器:
docker run -d \ --name zt \ --restart=always \ --device=/dev/net/tun \ --net=host \ --cap-add=NET_ADMIN \ --cap-add=SYS_ADMIN \ -v /var/lib/zerotier-one:/var/lib/zerotier-one zerotier/zerotier-synology:latest
常用命令:
#查看zerotier状态docker exec -it zt zerotier-cli status#加入网络docker exec -it zt zerotier-cli join [xxxxxxxxxxxx]