前提条件:
- 在内网有一台电脑
- 有一台有公网 ip 的服务器
- 能保证两台电脑同时开机并运行相应的服务
工具下载:
服务器端(有公网 IP 的机器)
复制 frp 文件到服务器端
服务器端
frps.ini
文件配置(在 WinSCP 中用文本编辑器编辑即可)
1 | bind_port = 7000 # 连接客户端端口 |
- 运行frp
1 | chmod +x ./frps # 添加执行权限 |
Tips:
- 按照以上做法已经完成了配置可以正常使用,但如果关闭 putty frp也会关闭,如果需要在 linux 后台长期开启,需要安装
screen
1 | # 安装 screen |
Windows 客户端(接入内网的机器)
- 复制 frp 文件到客户端
- 客户端 frpc.ini 配置
1 | [common] |
cmd
中运行frpc -c frpc.ini
此时在外网输入
39.105.49.20:8081
即可访问内网才能访问的10.16.86.1:80
页面
Tips:
- 所有要用到的端口,都要保证在服务器与客户端都开放,阿里云服务器要去配置安全组,windows 需要添加规则或关闭防火墙。否则会出现
404 无法访问
- frp 不止能用于网页的穿透,理论上只要是 tcp 的功能都可以
- 穿透的网页不限量,可以添加 N 多个
- 可以创建一个
xxx.cmd
脚本,用文本编辑器打开输入frpc -c frpc.ini
,每次使用双击即可,也可添加为开机启动项
Linux 客户端
- 复制 frp 文件到客户端
- 客户端 frpc.ini 配置
1 | [common] |
进入到 frpc 所在文件夹打开 Terminal
./frpc -c ./frpc.ini
即可运行
设置开机后台启动
- 1、添加 frpc.service 服务
1 | # 进入该地址 |
注意:
ExecStart=/home/gavin/frp/frpc -c /home/gavin/frpc.ini
这一行是需要自己写的,其实就是一行运行 frpc 的语句,用绝对地址写了一遍。- 除了
ExecStart=/home/gavin/frp/frpc -c /home/gavin/frpc.ini
这一行需要换成自己的地址,其余照抄。
- 2、添加自启服务
1 | 刷新服务列表: |
若开机无法自启,提供两个解决思路:
- 修改 frpc 的权限,
sudo chmod 777 frpc
- 出现:
Failed with result “exit-code”
报错:要检查在frpc.ini
有没有加login_fail_exit = false
这句话。错误原因:frpc 原本不支持无网络启动,所以启动失败。
- linux 客户端出现问题