https://github.com/fatedier/frp
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
安装前需要有一台具备公网IP的机器或云服务器,我用的是腾讯云服务器。
具有公网IP的机器(云服务器等)安装服务端frps,需要内网穿透的机器安装客户端frpc。
#解压缩 tar -vxzf frp_0.38.0_linux_amd64.tar.gz cd frp_0.38.0_linux_amd64 #复制执行文件 sudo cp frpc frps /usr/bin/ #复制配置文件 sudo mkdir /etc/frp sudo cp frp*.ini /etc/frp #复制系统服务文件 sudo cp systemd/* /lib/systemd/system/
客户端(内网,无公网IP)
#启动frp客户端 sudo systemctl start frpc #配置开机启动 sudo systemctl enable frpc
服务器端(vps,有公网IP)
#启动frp服务端 sudo systemctl start frps #配置开机启动 sudo systemctl enable frps
cd ./frp_0.38.0_linux_amd64 #进入frp安装文件夹
vim frps.ini #修改frps配置文件
把下面的代码拷贝进去
[common]
bind_port = xxxx #服务端端口号,和客户端的server_port一致
token = passwd2022 #服务器和客户端协商的密码,不一致无法登陆
#dashboard_port = 7500 #frp管理页面端口
#vhost_http_port = 8080 #http端口
#dashboard_user = 123 #frp管理页面用户名
#dashboard_pwd = 123 #frp管理页面用户密码
保存退出,执行下面的命令
./frps -c ./frps.ini
上面的信息即为配置正确,如果报错,则可能是frps版本不对,或者配置不正确,自行查明。
cd ./frp_0.38.0_linux_amd64 #进入frp安装文件夹
vim frpc.ini #修改frpc配置文件
把下面的代码拷贝进去
[common]
server_addr = xx.xx.xx.xx #公网服务器ip
server_port = xxxx #服务器端口号,需要有公网IP的vps上开启该端口的防火墙
token = passwd2022 #服务器和客户端协商的密码,不一致无法登录
#tls_enable = true #使用tls加密,可写可不写
[ubuntu20.04_ssh]
type = tcp
local_ip = 127.0.0.1 #本地映射的应用的IP
local_port = 22 #本地映射的应用的端口
remote_port = 2222 #远端访问端口,需在有公网IP的vps上开启该端口的防火墙
#use_compression = true #启用数据压缩,可写可不写
保存退出,执行下面的命令
./frpc -c ./frpc.ini
上面的信息即为配置正确,如果报错,则可能是frps版本不对,或者配置不正确,自行查明。
上面的只是测试,实际要用到的frpc.ini和frps.ini都已经更换了存放位置,需要另行修改。
cd /etc/frp
vim frpc.ini
[common]
server_addr = xx.xx.xx.xx #公网服务器ip
server_port = xxxx #服务器端口号
token = passwd2022 #服务器和客户端协商的密码,不一致无法登录
tls_enable = true #使用tls加密,可写可不写
[ubuntu20.04_ssh]
type = tcp
local_ip = 127.0.0.1 #本地映射的应用的IP
local_port = 22 #本地映射的应用的端口
remote_port = 2222 #远端访问端口,需在有公网IP的vps上开启该端口的防火墙
use_compression = true #启用数据压缩,可写可不写
#后面都是范例,不用粘贴进去,仅用于参考
[windows10_rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 13389
use_compression = true
[range:windows10_ftp]
type = tcp
local_ip = 127.0.0.1
local_port = 21,50000-50002
remote_port = 2121,50000-50002
use_compression = true
[windows10_web]
type = http
local_port = 80
custom_domains = yourdomain.cn
use_compression = true
[windows10_smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 6000
use_compression = true
[ubuntu20.04_desktop]
type = tcp
local_ip = 192.168.1.122
local_port = 3389
remote_port = 23389
use_compression = true
#客户端是本机电脑或者同一局域网内的电脑都可以,启动frp: sudo systemctl restart frpc
找到并修改frps.ini:
cd /etc/frp
vim frpc.ini
[common] bind_port = xxxx #服务端端口号,和客户端的server_port一致 token = passwd2022 #服务器和客户端协商的密码,不一致无法登陆 #dashboard_port = 7500 #frp管理页面端口 #vhost_http_port = 8080 #http端口 #dashboard_user = 123 #frp管理页面用户名 #dashboard_pwd = 123 #frp管理页面用户密码 #服务器需要具有公网IP,可以使用腾讯云或者阿里云,操作前需要先配置防火墙打开使用的端口 sudo systemctl restart frps
#win10远程登陆,手机或平板下载RD Client软件,windows直接使用远程桌面 登陆:服务器IP:13389 #访问ftp ftp name@xx.xx.xx.xx:2121 #远程登陆ubuntu的ssh ssh -o port=2222 name@xx.xx.xx.xx #远程登陆ubuntu的桌面 #1.ubuntu安装xrdp sudo apt install xrdp #2.win10远程桌面登陆ubuntu 登陆:服务器IP:23389
win10下配置frp与ubuntu类似,配置方法都是一样的,只需下载对应的windows版本安装。配置完成后可以双击exe执行,也可以在win10中创建启动脚本来自动启动:
'start_frpc.vbs '请根据实际情况修改路径 CreateObject("WScript.Shell").Run """D:\Program Files\frp_0.38.0_windows_amd64\frpc.exe""" & "-c" & """D:\Program Files\frp_0.38.0_windows_amd64\frpc.ini""",0
将上述内容用记事本另存为start_frpc.vbs文件。
启动方法:
1.双击就可启动frpc,可在资源管理器中看到frpc.exe已启动;
2.或将其放到开机启动文件夹中C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup,开机后会自启动。
以服务端为例,环境vps+ubuntu20.04.
首先,在vps上安装docker:https://cnbbq.tk/docker.html
frp容器文档地址:
https://hub.docker.com/r/chenhw2/frp
docker pull chenhw2/frp #下载frp容器 #frp server服务端配置代码:其中:path_to_frps.ini,要换成自己的frps.ini的绝对路径 docker run -d \ -e "ARGS=frps" \ -v path_to_frps.ini:/frp/frps.ini \ --net host \ chenhw2/frp #frp clien客户端配置代码:其中path_to_frpc.ini也一样要换成自己的frpc.ini的绝对路径 docker run -d \ -e "ARGS=frpc" \ -v path_to_frpc.ini:/frp/frpc.ini \ --net host \ chenhw2/frp #--net="bridge", 容器网络设置: # bridge 使用docker daemon指定的网桥 # host //容器使用主机的网络 # container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源 # none 容器使用自己的网络(类似--net=bridge),但是不进行配置
参考文档:https://blog.csdn.net/weixin_40837318/article/details/121671160
参考视频:https://www.youtube.com/watch?v=KeecUhhfIE8
参考文档:https://codeantenna.com/a/MeAIIejtUo