frp在服务器上的搭建
搭建具体搭建以及配置方式参考github开源项目:frp
在该项目下载对应软件包配置好配置文件后运行即可,frps为服务端,frpc为客户端。
frps.ini配置
在服务器中运行的frps服务端配置文件如下:
1 | [common] |
在云服务器安全组中开放端口: 5443,10080,6443。其中:
- bind_port
frp服务端监听的端口 - bind_addr
frp服务端公网ip,frps部署在服务器中,使用0.0.0.0即可 - auth_token
连接秘钥,需要与客户端相同 - subdomain_host
自定义二级域名,frpc设置subdomain的参数后,实现subdomain.subdomain_host访问web - dashboard
frp服务状态监控,访问服务器域名加端口输入用户密码即可进入 - max_pool_count
开启最大连接池限定 - tcp_mux
开启tcp多路复用
frpc.ini配置
1 | [common] |
- server_addr
服务器公网ip - server_port、auth_token、tcp_mux
与frps中设置的相同 - protocol
底层通信使用kcp协议时另其至为kcp,不使用为tcp,默认tcp,可不设置 - pool_count
连接池数目,视具体情况而定
[web]
- local_ip、local_port
路由器控制台主页地址和登陆端口 - subdomain
二级域名设置
如果有需要可以继续照相同格式增加[web1]、[web2]等设置,实现二级域名访问其他本地网页功能
[range:ftp]
- local_port
除了映射到本地的ftp端口,还要映射完整被动模式的端口范围(注:该连续端口在路由器以及云服务器的防火墙中都要开放),因为padavan中ftp服务器默认开启pasv模式,在文件传输的时候需要使用该范围端口 - remote_port
设置访问ftp的端口(记得防火墙中开放)以及与上述ftp被动模式对应的端口范围
如果ftp服务器pasv下使用frp穿透不设置被动端口映射,将会出现用户授权成功但获取目录失败的情况。
配置完成后:
padavan.frp.yourdomain.com:10080访问路由器控制端口- 在putty等软件中配置地址
yourdomain.com端口2222,即可访问路由器的shell - 在winscp等软件中配置地址
yourdomain.com端口2121,即可访问本地ftp服务。
大多数人购买云服务器并不仅仅是为了实现内网穿透,还会搭建网站等,所以nginx的使用可以实现frp和其他网站共用80端口的功能,这样在访问路由器控制页的时候不需要输入端口号,直接输入网址padavan.frp.yourdomain.com即可。
nginx配置
在nginx中,在http中
1 | ··· |
上述配置,监听80端口的并将其转发到443端口,在443中使用nginx反向代理功能,过滤*.frp.yourdomain.com的网址并将其发送至上游服务器(frp),proxy_pass中服务器端口为vhost_http_port端口。如此即可实现使用https和http都可访问路由器web服务且不用输入端口号的功能。
若服务器没有占用80端口的服务,可以直接设置frps.ini中的vhost_http_port为80而无需安装配置nginx,这样亦可以实现URL不输入端口直接访问路由器控制页等本地web服务。