简介

IPv4资源紧缺的现在,家庭宽带一般是不带有固定公网IP地址,那么如果我们要远程访问家里的设备呢?frp内网穿透是一个不错的方案,我们只需准备一台拥有公网IP的云服务器做中转就能实现。

frp 采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。
部署环境

系统:CentOS7
frp版本:frp 3.7.1 可以直接跟着教程用wget下载或者去frp官方下载github.com


服务端(frps)安装

1 下载frp软件包,并解压

$ wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz
$ tar -zxvf frp_0.37.1_linux_amd64.tar.gz

由于某种不可描述的原因下载速度可能会比较慢,我这里也提供一下我的下载链接

2 编辑frps配置文件

$ cd frp_0.37.1_linux_amd64
$ vim frps.ini
[common] 
bind_port = 7000        #连接端口  
token = 123456         #连接密钥  
dashboard_port = 7333     #网页仪表板访问端口  
dashboard_user = admin     #网页仪表板登录用户名  
dashboard_pwd = 123456     #网页仪表板登录密码  
vhost_http_port = 80      #http代理端口  
vhost_https_port = 443     #https代理端口`

保存退出! 仪表盘可以直观地看到端口是否映射成功,建议开启。

3 新建frps服务

$ vim /etc/systemd/system/frps.service
[Unit] 
Description=frps daemon 
After=syslog.target network.target 
Wants=network.target   
[Service] 
Type=simple 
ExecStart=/root/frp_0.37.1_linux_amd64/frps -c /root/frp_0.37.1_linux_amd64/frps.ini       #路径 
Restart=always RestartSec=1min   
[Install] 
WantedBy=multi-user.target

保存退出!

$ systemctl daemon-reload    #重新加载服务配置文件
$ systemctl start frps     #启动frps服务
$ systemctl enable frps     #开机自启frps服务

客户端(frpc)安装

系统:Centos7

4 下载frp软件包,并解压

$ wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz
$ tar -zxvf frp_0.37.1_linux_amd64.tar.gz

5 编辑frpc.ini配置文件

$ cd frp_0.37.1_linux_amd64
$ vim frpc.ini
[common] 
server_addr = 服务端IP地址 
server_port = 7000 
token = 123456   
[ssh] 
type = tcp 
local_ip = 127.0.0.1 
local_port = 22
remote_port = 6000

保存退出!

6 新建frpc服务

$ vim /etc/systemd/system/frpc.service
[Unit] 
Description=frpc daemon 
After=syslog.target network.target 
Wants=network.target  
 
[Service] 
Type=simple 
ExecStart=/root/frp_0.37.1_linux_amd64/frpc -c /root/frp_0.37.1_linux_amd64/frpc.ini      #路径 
Restart=always 
RestartSec=1min   

[Install] 
WantedBy=multi-user.target

保存退出!

$ systemctl start frpc     #启动frpc服务
$ systemctl enable frpc     #开机自启frpc服务

如果使用docker容器部署frpc

7 新建frpc配置文件

$ vim /home/docker/frpc/frpc.ini
[common]
server_addr = 服务端IP地址
server_port = 7000
token = 123456

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

保存退出!

8 拉取frpc镜像并启动容器。

$ docker run --restart=always --network host -d -v /home/docker/frpc/frpc.ini:/frp/frpc.ini --name frpc oldiy/frpc

注意: 我这里创建容器时指定网络模式为host模式,默认网络模式是bridge模式。如果使用bridge模式则127.0.0.1地址为容器本身,不是宿主机,需要将前面frpc.ini文件里local_ip=127.0.0.1改成宿主机IP

文章作者: hzbb
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 运维小记
默认分类 杂项 内网穿透
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝