内网穿透,顾名思义frp搭建也需要分别搭建客户端和服务端两部分,其中服务端用于流量转发,需要有公网ip。部署比较简单,直接去github release 下载对应的文件就行了,Linux86 64位一般是这个frp_0.38.0_linux_386.tar.gz
。
1、第一步下载压缩包
2、解压压缩包,压缩包里的文件是真的超级简洁,果然大佬都是人狠话不多
3、此时你需要一个公网ip,将frp的服务端部署在公网机器上
将压缩包里的东西放到服务端的/etc/frp 目录下
frpc_full.ini 和 frps_full.ini是完整的配置文件 一般用不着,看看就行 一般用 frpc.ini 和 frps.ini 就行
# 服务端配置如下
[common] bind_port = 7000 # 服务端绑定的端口 bind_udp_port = 5999 # 仪表盘访问的端口 dashboard_port = 6001 # dashboard 用户名密码,默认都为 admin dashboard_user = dxvb dashboard_pwd = vbd
#将systemd下面frps.service 已送到服务器system文件下 #修改文件内容 [Unit] Description=Frp Server Service After=network.target [Service] Type=simple User=nobody Restart=on-failure RestartSec=5s ExecStart=/etc/frp/frps -c /etc/frp/frps.ini LimitNOFILE=1048576 [Install] WantedBy=multi-user.target
# 此时启动会报错,需要给frps可执行权限 chmod +x frps # 查看状态 systemctl status frps.service # 设置开机自启 systemctl enable frps.service
# 服务器别忘了防火墙和安全策略组放行
# 自此服务端的配置就结束了 # 接下来配置客户端的 # 这里我的客户端就拿一台虚拟机来用
4、配置客户端
# 开始的步骤跟上面一样把文件拖到服务器的etc文件夹下 # 修改配置文件 frpc.ini
[common]
server_addr = 47.97.223.15 # 这里是你公网ip地址
server_port = 7000 #这里是你之前设置的绑定端口
[ssh-6002]
type = tcp
local_ip = 127.0.0.1
local_port = 22 # 映射到本地的哪个端口
remote_port = 6002 #这个是你远程的时候链接的端口
# 同样复制frpc.service到system文件夹
# 修改配置
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/etc/frp/frpc -c /etc/frp/frpc.ini
ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
# 赋予可执行权限chmod +x frpc
# 启动和设置开机自启
systemctl start frpc.service
systemctl enable frpc.service
5、配置加密压缩
# 此处添加了加密压缩这两个功能,默认是不开启的,根据介绍,压缩算法使用的是 snappy # 必须放在相关协议下面 [ssh-6002] type = tcp local_ip = 127.0.0.1 local_port = 22 # 映射到本地的哪个端口 remote_port = 6002 #这个是你远程的时候链接的端口 use_encryption = true # 启用加密 [通信内容加密传输,有效防止流量被拦截] use_compression = true # 启用压缩 [传输内容进行压缩,有效减小传输的网络流量,加快流量转发速度,但会额外消耗一些CPU资源]
6、配置通过frp访问客户端文件
[common] server_addr = 47.97.23.15 server_port = 7000 [ssh-6002] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6002 [test_static_file] type = tcp local_ip = 127.0.0.1 remote_port = 6003 plugin = static_file # 要对外暴露的文件目录 plugin_local_path = /tmp # 用户访问 URL 中会被去除的前缀,保留的内容即为要访问的文件路径 plugin_strip_prefix = static plugin_http_user = lj plugin_http_passwd = jlj
注意:被访问的文件需要有相关的读取权限,需要特别指定chmod +x 或者 777 应该都可以 否则会报403错误
通过 http://47.97.23.15:6003/static/test.py 就可以访问指定文件了