内网穿透-Frp

frp的用于处在你内网或防火墙后的机器,对外网环境提供 http 或 https 服务。支持自定义域名绑定,使多个域名可以共用一个80端口。处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

服务端安装

1.使用SSH链接服务器,创建日录,安装frp

使用uname -a命令查看当前系统架构,选择对应版本frp安装

mkdir -p /usr/local/frp
wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
tar -zxvf  frp_0.13.0_linux_amd64.tar.gz
cd frp_0.13.0_linux_amd64

或者使用ftp连接,在/usr/local/下创建frp文件夹,下载https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz解压上传至frp文件夹下。

2.文件夹下现在有四个文件 frpc、frpc.ini 和 frps、frps.ini 服务端主要关注后两个,这里对frps.ini进行简单配置

[common]
bind_port = 7000           #与客户端绑定的进行通信的端口
vhost_http_port = 8000     #访问客户端web服务自定义的端口号

3.去服务器安全组放行 8000 端口,在SSH下切换到frp文件目录下启动frp

nohup ./frps -c ./frps.ini &

在浏览器输入 服务器IP:8000,显示如下表示成功。

客户端安装

客户端安装和服务端类似,这里主要关注 frpc、frpc.ini 文件,安装后我们对 frpc.ini 进行配置

[common]
server_addr = xxx.xx.xx.xx   #公网服务器
ipserver_port = 7000            #与服务端bind_port一致 #公网通过ssh访问内部服务器

[ssh]
type = tcp              #连接协议
local_ip = 192.168.3.48 #内网服务器
iplocal_port = 22         #ssh默认端口号
remote_port = 6000      #自定义的访问内部ssh端口号 #公网访问内部web服务器以http方式

[web]
type = http         #访问协议
local_port = 8081   #内网web服务的端口号
custom_domains = repo.nobady.cn   #所绑定的公网服务器域名,一级、二级域名都可以

配置后运行frp

nohup ./frpc -c ./frpc.ini &

在浏览器中输入 repo.nobady.cn 试试是否成功。

详细的配置可以查看: Frp配置

自启动配置

这里使用 systemctl 来控制自启动

sudo vim /lib/systemd/system/frps.service

在frps.service里写入以下内容

[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini

[Install]
WantedBy=multi-user.target

配置好后保存,启动frp,打开自启动

sudo systemctl start frps 
sudo systemctl enable frps

如果要重启应用,可以这样,sudo systemctl restart frps
如果要停止应用,可以输入,sudo systemctl stop frps
如果要查看应用的日志,可以输入,sudo systemctl status frps