1、下载frp部署包,并修改配置
地址:https://github.com/fatedier/frp/releases寻找适合自己的架构,arm的架构也能与amd架构服务器相互连接
将包放到带有公网IP的云服务器上并解压
[root@ubt-server ~]# cd frp_0.65.0_linux_amd64
root@iZ2zegcfdpex614g0z6yy6Z:~/frp_0.65.0_linux_amd64# cat frps.ini # 将配置文件添加进去,这个“#”后的中文在写入配置中的时候都去掉
[common] # 连接-必填
bind_port = 7000 # frp服务相互通信的端口,安全组需要开放该端口
dashboard_port = 7500 # 图形化端口,安全组需要开放该端口
dashboard_user = admin # 图形化页面用户
dashboard_pwd = 123456 # 密码
token = 123456 # 认证密码,建议写的安全一点,测试完修改
vhost_http_port = 8080 # http服务端口,安全组需要开放该端口
vhost_https_port = 8443 # https服务端口,安全组需要开放该端口
将包在内网服务器上解压一份,并测试与公网IP之间的连通性(ping一下ip就行)
[root@ubt-server frp_0.65.0_linux_amd64]# cat frpc.ini # 将配置文件添加进去,这个“#”后的中文在写入配置中的时候都去掉
[common]
server_addr = 你的公网IP
server_port = 7000 # frp服务相互通信的端口,上面的
token = 123456 # 上面的认证密码
[ssh]
type = tcp
local_ip = 127.0.0.1 # 填写本地的IP
local_port = 22 # 本地端口
remote_port = 6000 # 远程连接IP
2、运行服务并测试
# 服务端-公网服务器
./frps -c ./frps.ini # 运行命令,运行后不要点contrl+c退出
# 客户端-内网服务器
./frpc -c ./frpc.ini # 运行命令,运行后不要点contrl+c退出
# 先在本地的windows上“telnet 公网IP 7000”,“telnet 公网IP 7500”,看看安全组是否放开
# 以上操作都做了以后再远程连接公网服务器的6000端口,密码填内网服务器的密码,检查IP是否为内网IP
3、访问内网的https服务
# 客户端-内网服务器
[root@ubt-server frp_0.65.0_linux_amd64]# cat frpc.ini
[common]
server_addr = 你的公网IP
server_port = 7000
token = 123456
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# 添加进去
[web]
type = https
local_ip = 127.0.0.1
local_port = 443
custom_domains = xxxx.com # 你在内网访问的域名
# 运行 ./frpc -c ./frpc.ini ,随后访问https://xxx.com:8443
4、服务器代理多个端口
root@iZ2zegcfdpex614g0z6yy6Z:~/frp_0.65.0_linux_amd64# cat frps.ini # 配置文件除了密码不做更改
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
token = xxxxxxxxxxxxx # 改复杂一点
vhost_http_port = 8080
vhost_https_port = 8443
# 云服务器预先放行端口安全组6001-6005作为远程端口,将安全组访问限制到自己使用的IP
# 客户端-内网服务器
[root@ubt-server frp_0.65.0_linux_amd64]# cat frpc.ini
[common]
server_addr = 39.105.130.0
server_port = 7000
token = 123456
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[mysql] # 示例
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 6001
[dm] # 示例
type = tcp
local_ip = 127.0.0.1
local_port = 5236
remote_port = 6002
# 运行客户端与服务端,再尝试连接,后续如果需要代理其他的内网服务,只需要将客户端的包拷贝到对应的内网服务器上,将内容填成实例的样子,
# 再占用一个未使用的安全组端口运行服务即可,连接方式仍是“公网IP+端口”