frp实现内网穿透
服务端配置
-
在外网服务器下载frp安装解压
-
网站:https://github.com/fatedier/frp/releases/tag/v0.33.0
-
要下载正确版本的,首先用arch命令查看服务器的架构
-
我这里是x86-64架构的,所以选择 frp_0.33.0_linux_amd64.tar.gz
-
选择一个目录并解压
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
-
进入该目录
cd frp_0.33.0_linux_amd64/
-
打开配置文件
vi frps.ini
-
frps.ini最终的位置放在了服务器的
-
修改内容为
[common] # frp监听的端口,默认是7000,可以改成其他的 bind_port = 7000 # 授权码,请改成更复杂的 token = 52010 # 这个token之后在客户端会用到 # frp管理后台端口,请按自己需求更改 dashboard_port = 7500 # frp管理后台用户名和密码,请改成自己的 dashboard_user = admin dashboard_pwd = admin enable_prometheus = true # frp日志配置 log_file = /var/log/frps.log log_level = info log_max_days = 3
-
依次执行以下命令
sudo mkdir -p /etc/frp sudo cp frps.ini /etc/frp sudo cp frps /usr/bin sudo cp systemd/frps.service /usr/lib/systemd/system/ #这里要先在/usr/lib/systemd下创建一个system文件夹 sudo systemctl enable frps sudo systemctl start frps
-
远程服务器需要用命令或者在管理平台打开相应的端口号
-
验证服务是否启动
http://服务器IP:后台管理端口
-
-
客户端配置
-
首先也要下载对应版本的frp mac 下载 frp_0.33.0_darwin_amd64.tar.gz
-
下载后解压
-
更改frpc.ini
/usr/local/frps/frp_0.33.0_linux_amd64
# 客户端配置 [common] server_addr = 服务器ip # 与frps.ini的bind_port一致 server_port = 7000 # 与frps.ini的token一致 token = 52010 # 配置ssh服务 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 # 这个自定义,之后再ssh连接的时候要用 remote_port = 6000 # 配置http服务,可用于小程序开发、远程调试等,如果没有可以不写下面的 [web] type = http local_ip = 127.0.0.1 local_port = 8080 # web域名 subdomain = test.hijk.pw # 自定义的远程服务器端口,例如8080 remote_port = 8080
-
启动
./frpc -c frpc.ini
-
测试
ssh 用户名@服务端ip -p 端口号
-
这里的用户名是你要访问的电脑的用户名 密码是电脑密码
问题
- 在远程虚拟机里面想要进行内网穿透,执行./frpc -c frpc.ini的时候,发生了以下问题
connect: no route to host dial tcp 60.204.204.64:7000: connect: no route to host
发现虚拟机里面网络不能正常使用,于是重启网络,正常使用后,再次输入指令,成功运行。
-
如果发现ssh客户端时refuse 则说明客户端ssh没有打开
-
如下错误
-
[E] [proxy.go:766] [4d0ecb7a6c38f035] [ssh] connect to local service [127.0.0.1:22] error: dial tcp 127.0.0.1:22: connect: connection refused
- 此时mac用终端启动ssh
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
- 查看ssh启动情况
sudo launchctl list | grep ssh
- 成功开启显示
- 0 com.openssh.sshd
- 此时mac用终端启动ssh
-