使用frp内网穿透本地的虚拟机
使用frp内网穿透本地的虚拟机
需求:想在宿舍使用实验室的Ubuntu虚拟机,两者又不在同意局域网内。恰巧有台具有公网IP的服务器。
下载安装包
wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
tar -xzvf frp_0.21.0_linux_amd64.tar.gz
解压之后为了清爽,删除客户端的一些文件,保留两个服务端的文件。
frps frps.ini
配置公网服务器上的配置
修改frps.ini
文件
[common]
server_addr=22.22.22.22 # 公网服务器
bind_port = 7000
vhost_http_port = 7001 # frp面板端口
token=aabbcc
webServer.user = "admin" # frp面板相关账号
webServer.password = "admin"
直接启动
nohup ./frps -c frps.ini &
虚拟机客户端配置
修改frpc.ini
文件
[common]
server_addr = 0.0.0.0 #frp服务端地址,可以填ip或者域名,这里假设为0.0.0.0
server_port = 7000 #frp服务端端口,即填写服务端配置中的 bind_port[ssh]
type = tcp #连接类型,填tcp或udp
local_ip = 127.0.0.1 #填127.0.0.1或内网ip都可以
local_port = 22 #需要转发到的端口,ssh端口是22
remote_port = 6000 #frp服务端的远程监听端口,即你访问服务端的remote_port就相当于访问客户端的 local_port,如果填0则会随机分配一个端口####如果要配置mysql映射也是类似
[mysql]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 13306
这段配置表示客户端通过 x.x.x.x:7000
连接到服务端,并将本地的 SSH 服务(127.0.0.1:22
)映射到服务端的 6000
端口,从而可以从外部访问内网的 SSH 服务。
nohup ./frpc -c frpc.ini &
同时记得打开相应的端口
登录
ssh -p 6000 username@server_addr
username
是内网机器的用户名,server_addr
是公网服务器的IP,port 6000就是设置的 remote_port,最后的登录密码是内网机器的密码,而不是公网机器的密码,这一点一定要注意。