使用Frp穿透内网服务
前几天在我自己的主机上部署了一个Seafile,作为个人使用。但是这个主机连接的是校园网,于是乎需要进行穿透以便我在外使用。
之前有看到过花生壳等等,但是鉴于我有一台公网服务器,因此这次我采用经典的Frp直接将服务代理到公网。
部署方法
- 到Github上下载Frp的Release并解压将文件夹传到公网服务器和内网服务器
网址:https://github.com/fatedier/frp/releases
- 修改文件夹的名字,日后维护的时候你会感谢你自己的这个举手之劳
1
mv frp_0.xx.0_linux_amd64 frp
- 配置服务端(公网服务器)
打开该文件夹
- 编辑frps.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25[common]
#用于客户端和服务端连接的端口
bind_port =
# 反向代理的http端口
vhost_http_port =
# 反向代理的https端口
vhost_https_port =
# 控制界面端口
dashboard_port =
# 控制界面用户名
dashboard_user =
# 控制界面密码
dashboard_pwd =
# 若要使用frp,需要提供令牌以确保安全
token =
# 日志文件路径
log_file = ./frps.log
# 日志记录错误级别,分为:trace, debug, info, warn, erro
log_level = warn
# 日志保存最大天数
log_max_days = 30
# 代理的网站域名
subdomain_host = https://your_domain - 后台开启运行
1
nohup ./frps -c frps.ini &
- 查看输出日志,如果有success就说明成功了
1
tail -f nohup.out
- 配置客户端(内网服务器)
打开该文件夹
- 编辑frpc.ini
注意:这里我使用了nginx在内网服务器做代理转发,所以没有ssl信息,直接代理http1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29[common]
# 填写服务器实际IP
server_addr =
# 用于客户端和服务端连接的端口
server_port =
# 向服务器出示令牌
token =
# 代理的服务名称,这个是自己随便起的
# 做一个穿透到公网的网站
[web]
# 代理的协议类型
type = http
# 服务在本地的位置
local_port =
# 代理该服务端公网域名
custom_domains = https://your_domain
# 代理的服务名称,这个是自己随便起的
# 做一个远程 ssh 服务
[ssh]
# 代理的协议服务
type = tcp
# 本机 ip
local_ip =
# 这个服务在本机的位置,如果是 ssh 默认就是 22
local_port = 22
# 占用公网服务器的端口号,不用在服务端约定好,但要避免重复
remote_port = - 后台开启运行
1
nohup ./frpc -c frpc.ini &
- 查看输出日志,如果有success就说明成功了
1
tail -f nohup.out
- 试试效果,如果可以访问,就大功告成
这里要指出 frp 服务端可以为多个客户端服务,但是一定要避免端口冲突 - 关闭一个 frp 服务的方法
使用以下命令查看 frp 的进程然后根据输出的进程编号杀掉这个进程1
ps -aux|grep frp| grep -v grep
1
kill xxxx
使用Frp穿透内网服务
https://www.tomcatdeng.cn/undefined/使用Frp穿透内网服务-shi-yong-frp-chuan-tou-nei-wang-fu-wu/