使用frp实现内网穿透如远程访问校园内网服务器:frp-Github链接
frp安装
可以根据需求下载对应的文件版本,推荐使用Windows_amd64和Linux_amd64版本,具体还需要根据机子情况。下载链接
frp环境部署
frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。以阿里云WinServer2008作为公网IP服务器和Win10作为内网机子为例。
首先下载frp_0.33.0_windows_amd64版本,之后配置客户端文件,打开frpc.ini。
[common] server_addr = x.x.x.x #填写公网服务器IP server_port = 7000 #这个端口指的是客户端与服务端通信使用的端口 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 3389 #SSH使用22端口 windows系统使用3389端口 remote_port = 6000 #这个端口是指通过x.x.x.x:6000访问内网机子的转发端口
注意若使用云服务器,在服务器的安全组中要把端口7000、6000(可自定义)都进行开放,否则连接不上。服务端使用默认配置文件不需要更改。
配置好文件之后,启动即可,windows的话需要使用cmd打开,可自写bat文件启动。
想要多客户端配置就在不同客户端上面使用不同端口启动即可:
[common] server_addr = x.x.x.x #填写公网服务器IP server_port = 7000 #这个端口指的是客户端与服务端通信使用的端口 [ssh2] # 不同客户端需要不同的名字 type = tcp local_ip = 127.0.0.1 local_port = 3389 #SSH使用22端口 windows系统使用3389端口 remote_port = 6006 #这个端口是指通过x.x.x.x:6000访问内网机子的转发端口
若需要配置web服务需要更改服务器和客户端文件如下:
frps.ini服务端配置文件
[common] bind_port = 7000 vhost_http_port = 6001 # 访问6001端口,映射到内网web服务
frpc.ini客户端配置文件
[common] server_addr = x.x.x.x server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 6000 [web] type = http local_port = 8080 # 访问本地8080web服务 custom_domains = www.xxx.cn # 必须已经备案
客户端启动:
服务端启动:
连接测试图:
frp仪表盘配置
通过frp自带仪表盘控制界面 Dashboard 可以方便的查看 FRP 的状态以及代理统计信息展示
要使用这个功能首先需要在 FRP 服务端配置文件 frps.ini 中指定 Dashboard 服务使用的端口:
# frps.ini 内容 [common] bind_port = 7000 # 指定 仪表盘控制界面 Dashboard 的监听的 IP 地址 //0.0.0.0 为所以IP均可访问 dashboard_addr = 0.0.0.0 # 指定 仪表盘控制界面 Dashboard 的监听的端口,默认为 7500 dashboard_port = 7500 # 指定访问 仪表盘控制界面 Dashboard 的登录用户名 dashboard_user = admin # 指定访问 仪表盘控制界面 Dashboard 的登录用户密码 dashboard_pwd = admin123
在frp目录下输入【frps -c frps.ini】命令重新启动 frps 服务端
出现start frps success即启动好服务,注意在阿里云开放对应端口7500.
nssm将frp注册为win10服务
为了方便frp在win10启动,可以设置为服务,让其后台自启。
首先下载nssm,官网链接
NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下:
- 支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
- 安装简单,修改方便
- 可以重定向输出(并且支持Rotation)
- 可以自动守护封装了的服务,程序挂掉了后可以自动重启
- 可以自定义环境变量
服务安装:
服务安装可以使用如下命令(注意使用管理员运行): nssm install servicename
执行此命令后,会出现一个界面,基本上看着就知道怎么用了,大多数情况下,只需要填第一个界面的程序路径就可以了。
其它界面的是高级参数的配置,可以根据需要自行选择。
参数填完后执行”install service”按钮即可将服务安装到系统,可以使用系统的服务管理工具查看了。
当然,如果要自动化安装,可以直接带上程序路径: nssm install servicename program [arguments]
NSSM本身win7及以上的系统基本都是支持的,我测试过win7,2008,2016系统,都是没有问题的,如果安装失败,请首先检查是否装了某国产管家或国产杀毒软件。
安装完成后,服务还没有启动,需要通过下面的服务管理的命令启动服务。
服务管理:
服务管理主要有启动、停止和重启,其命令如下:
- 启动服务:nssm start servicename
- 停止服务:nssm stop servicename
- 重启服务:nssm restart servicename
当然,也可以使用系统自带的服务管理器操作和使用系统的命令。
修改参数:
NSSM安装的服务修改起来非常方便,命令如下:
nssm edit servicename
会自动启动操作界面,直接更改即可。
服务删除:
服务删除可以使用如下命令之一:
- nssm remove servicename
- nssm remove servicename confirm
功能没有大的区别,后面的命令是自动确认的,没有交互界面。
建议
- 如果有自己的域名,可以将域名解析到公网ip上面,这样只需要根据域名即可进行远程连接。
- frp是需要公网的机子,若无公网机子,可以考虑花生壳、NatApp等软件进行内网穿透。
原文链接:https://www.cnblogs.com/dlvguo/p/13685661.html