搞frp是很久之前的事情了,因为nas想要在外面访问,frp可以帮我将内网端口映射到外网的如vps的端口上以实现穿透访问。
但是后来申请到了公网ip,对frp的需求就很少了。
但即使有公网ip,个人的公网Ip是没有80端口的,因此想要用到80端口,还是需要使用frp的。
除了家挺的内网穿透用途之外,作为程序员的我,偶尔和同事需要异地调试时(需要调用到我的本地服务),也会通过frp将本地的端口映射出去让他调试。
具体利弊可以看我的另一篇博文:,,
一. 服务端配置
1.找到合适的版本
打开frp的下载列表: https://github.com/fatedier/frp/releases
一般来说可以使用386的,兼容绝大部分linxu_vps:
https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_386.tar.gz
2.下载
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_386.tar.gz
3. 解压缩并打开
tar -xzvf frp_0.33.0_linux_386.tar.gz
cd frp_0.33.0_linux_386
4.配置frps
修改frps.ini
vi frps.ini
内容为:
[common]
#监听端口
bind_port = 7000
#监听地址
bind_addr = 0.0.0.0
#认证token
auth_token = 12345678
按下:wq保存并退出
此时已经配置完成,可以使用./frps -c ./frps.ini来启动frps了
如果显示start frps success就表示已经开启成功
5.配置开机自启动
将frps移动到一个靠谱的目录并进入
mv frp_0.33.0_linux_386 /usr/etc/frps
cd /usr/etc/frps
配置服务
sudo vi /lib/systemd/system/frps.service
粘贴内容如下:
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/etc/frps/frps -c /usr/etc/frps/frps.ini
[Install]
WantedBy=multi-user.target
开启服务:
sudo systemctl start frps
配置服务自启动
sudo systemctl enable frps
以上,服务端全部完成。
二. 客户端配置
1. 下载
下载方式同上步骤一 ,windows客户端直接下载解压后获得frpc
2. 配置
记事本打开fpc.ini文件,填入内容:
[common]
server_addr = 你的服务端ip地址
server_port = 7000
auth_token = 12345678
[web]
type = tcp
;更改local_port为需要映射的本地端口号
local_port = 5500
;remote_port对应服务器端口 访问地址:ip:8090
remote_port = 3000
如果有多个端口可以按照[web]的内容,配置多个端口转发
配置完成,cmd运行,即可成功连接:
frpc.exe -c frpc.ini
如果嫌麻烦可以写一个批处理,新建一个bat文件,用记事本打开,输入:
frpc.exe -c frpc.ini
pause
以上,frp就成功配置。
三. 问题
- 如果两边都运行成功,但是怎么都连不上。先检查配置文件,再确定服务器的防火墙有没有打开或者安全组对应的端口有没有开放。
- 如果出现: ./frpc: cannot execute binary file: Exec format error 的错误提示,请注意选择自己合适的内核版本。