1.所需准备
- 有公有IP的服务器,比如阿里云服务器 (以下简称服务端)
- linux 本地服务器 (以下简称客户端)
- fpr软件
所需的fpr软件可以从下面的链接下载:
https://github.com/fatedier/frp/releases
我下载的是frp_0.33.0_linux_amd64.tar 这个版本
分别上传到 服务端 和 客户端
也可以用以下命令,直接下载到linux系统里,客户端和服务端都需要
cd /usr/local/
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar xzvf frp_0.33.0_linux_amd64.tar.gz
mv frp_0.33.0_linux_amd64 frp
2.目录结构
- frpc:客户端可执行程序
- frpc_full.ini:客户端所有配置项(可以再此文件查看frp的所有的配置项)
- frpc.ini:客户端配置项
- frps:服务端可执行程序
- frps_full.ini:服务端所有配置项(可以再此文件查看frp的所有的配置项)
- frps.ini:服务端配置项
- LICENSE:许可证
服务端只需要编辑frps.ini文件
客户端只需要编辑frpc.ini文件
所以,在客户端执行:
rm -f frps frps.ini frps_full.ini
删除服务端配置,同理,在服务端执行:
rm -f frpc frpc.ini frpc_full.ini
删除客户端配置。
3.TCP穿透
这种穿透方式可以实现从外网访问linux服务器
3.1 配置
服务端:
vim frps.ini
[common]
bind_port = 7000 # 穿透和客户端链接用到的端口
客户端:
vim frpc.ini
[common]
server_addr = 云服务器地址
server_port = 7000 # 穿透和服务器链接用到的端口
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 虽然配在客户端,却是服务端向外界暴露的端口
3.2 运行
服务端运行:
./frps -c frps.in
客户端运行:
./frps -c frps.ini
3.2 测试
点击连接后出现
说明穿透成功
4. Web穿透
这种穿透方式可以实现从外网 本地linux上运行的 Web程序
4.1 配置
服务端:
vim frps.ini
[common]
bind_port = 7000 # 这个不用改,还是和客户端绑定的端口
vhost_http_port = 80 # http暴露端口
vhost_https_port = 443 # https暴露端口
token = xxxxxx # 自己定义的token,类似于客户端和服务端确认的一个密码
客户端:
vim frpc.ini
[common]
server_addr = 云服务器地址
server_port = 7000 # 穿透和服务端链接用到的端口
token = xxxxxx # 与服务端token保持一致
# 这个不变
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 虽然配在客户端,却是服务端向外界暴露的端口
# 增加一个web的
[webtest]
type = http
local_ip = 127.0.0.1
local_port = 8888 # 本地web应用使用端口
custom_domains = # 没域名可以用 服务端IP,不写好像是访问不了
4.2 运行
服务端运行:
./frps -c frps.in
客户端运行:
./frps -c frps.ini
因为手头没任何Web项目,就不测试了…
5. linux后台运行
nohup command &
如果想要退掉shell 也可以进行穿透,则执行:
$ nohup ./frps -c frps.ini &
$ nohup ./frpc -c frpc.ini &
6. 参考
https://www.cnblogs.com/chywx/p/10939966.html
https://www.it235.com/%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7/%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/pierce.html