server1:10.10.10.1:内网服务器;无代理
server2:10.10.10.2:内网服务器;有代理(代理端口为8888)
server3:192.168.1.xx:外网服务器
使用frp实现通过外网访问server3(的指定端口)从而访问内网服务器server1, server2是server1的代理服务器。
1.配置server3的frps.ini(服务端)
[common]
bind_port = 7000
auth_token = influx
2.配置server1的frpc.ini (客户端)
[common]
server_addr = 192.168.1.xx
server_port = 7000
auth_token = influx
http_proxy = http://10.10.10.2:8888
https_proxy =https://10.10.10.2:8888
[bc_ssh]
type = tcp
local_port = 3125
remote_port = 5066
说明:
server_port 为server3 frp服务绑定的端口号(frps与frpc一致)
auth_token 为frps与frpc的认证秘钥 (frps与frpc一致)
http_proxy/https_proxy 为内网(server2)代理服务器的地址+代理服务端口号
由于server1没有外网也没有代理,所以只能通过server2的代理连接外网服务器上的frps
type=tcp 设置访问方式为tcp
local_port =3125 本地访问(ssh访问)端口为3125
remote_port =5066 设置远程对外端口为5066(就是设置server3访问server1的端口)
3.启动frps 和frpc
./frps -c frps.ini./frpc -c frpc.ininohup ./frps -c frps.ini&nohup ./frpc -c frpc.ini&
4.通过server3访问server1(ssh)
ssh -p 5066 @username192.168.1.xx:5066
注意:
username 为server1也就是10.10.10.1的用户名;password也是server1的password
由于frpc的remote_port = 5066所以在server3的端口是5066就指定了访问的是server1
遇到的问题
frp服务端需和客户端版本一致(最好一致吧)
./frpc -c frpc.ini
login to server failed:ConnectTcpServer using proxy error, StatusCode [403]
403是forbbiden/refused
解决办法:
http_proxy="" ./frpc -c frpc_.ini#http_access deny CONNECT !SSL_portsConnectPort 7000
保存restart proxy服务