准备一台公网服务器、一台内网主机
1、下载frp
下载地址
https://github.com/fatedier/frp/releases/tag/v0.57.0
下载解压后的frp文件夹里有frps、frps.toml、frpc、frpc.toml
frps是服务端,frpc是客户端
在公网服务器上只留服务端frps、frps.toml,把frpc删掉(也可以不删)
在内网主机上只留frpc、frpc.toml,把frps删掉(也可以不删)
2、修改配置
frps配置
bindPort = xxx #服务端监听端口
auth.method = "token" #服务端连接身份认证,默认token
auth.token = "xxx" #服务端token密码
webServer.addr = "0.0.0.0" #服务端IP
webServer.port = xxx #服务端仪表板端口
webServer.user = "xxx" #访问web时的账号
webServer.password = "xxx" #访问web时的密码
frpc配置
serverAddr = "x.x.x.x" #服务器IP
serverPort = xxx #服务端监听端口
auth.method = "token" #服务端连接身份认证,默认token
auth.token = "xxx" #服务端token密码
[[proxies]]
name = "ssh" #隧道名称
type = "tcp" #隧道类型
localIP = "127.0.0.1" #本地IP
localPort = 22 #本地服务端口
remotePort = 1234 #连接隧道时用的端口
记得在服务器控制台和防火墙上把端口都放行
3、运行frp
先运行公网服务器上的frps
./frps -c frps.toml
再运行内网主机上的frpc
./frpc -c frpc.toml
连接成功时会出现
然后访问
服务器IP:frps里设置的仪表盘端口
访问时会出现
用户名密码就是在frps里设置的
进来是这样的
在proxies/tcp就可以看到刚刚搭建的隧道
4、通过ssh访问内网服务器
使用命令
ssh -o Port=frpc里设置的remoteport 用户名@公网服务器IP
如果出现
就在要连接的主机上修改/etc/hosts.allow
在底下加
sshd:ALL #允许其他所有ip主机连接本机
然后重启服务
systemctl restart ssh