[关闭]
@zhangsiming65965 2020-06-28T03:35:45.000000Z 字数 1444 阅读 172

frp内网穿透服务

Network

---Author:张思明 ZhangSiming

---Mail:1030728296@qq.com

---QQ:1030728296


image_1ebdgpffdmr7tiaa7h17go1k009.png-139.7kB

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

一、架构

1.1 前提

条件 描述
一台具有公网ip的服务器 作为frp-server
一台可以访问到公网的内网服务器 作为frp-client

1.2 架构

image_1ebdh3d8b11aa13q21blvdf8ovm.png-130.9kB

frp-client向frp-server发起请求协商,之后每次外网访问,都由具有公网ip的frp-server代为请求,进行与内网服务器的交互。

二、配置

2.1 下载frp安装包

github地址:https://github.com/fatedier/frp

下载方式:

  1. $ wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz
  2. $ tar xf frp_0.13.0_linux_amd64.tar.gz
  3. $ cd frp_0.13.0_linux_amd64

2.2 frp-server

  1. $ vim frps.ini
  2. [common]
  3. # 与客户端绑定的进行通信的端口
  4. bind_port = 7000
  5. # server的dashboard的端口,账号密码
  6. # token作为客户端和服务端协商的依据,需要一致
  7. dashboard_port = 7500
  8. token = 4J292QCXbh
  9. dashboard_user = admin
  10. dashboard_pwd = admin
  11. # 作为代理服务器访问客户端web服务自定义的端口号
  12. vhost_http_port = 6065

后台启动server端:

  1. $ nohup ./frps -c ./frps.ini &

2.3 frp-client

  1. $ vim frpc.ini
  2. [common]
  3. # 公网服务器ip
  4. server_addr = 52.83.167.29
  5. # 与服务端bind_port一致
  6. server_port = 7000
  7. # frp的协商token
  8. token = 4J292QCXbh
  9. # 名字自己起,定义一个ssh服务
  10. [ssh]
  11. # 服务类型
  12. type = tcp
  13. # 内网服务器ip
  14. local_ip = 192.168.33.10
  15. # 内网服务器地址
  16. local_port = 22
  17. # 远端地址,及访问server的这个"remote_port"就相当于访问内网服务器的"local_port"
  18. remote_port = 6000
  19. #公网访问内部web服务器以http方式
  20. [pgadmin]
  21. # 访问协议类型
  22. type = http
  23. # 本地端口
  24. local_port = 8082
  25. # 访问域名,只有http类型支持,端口已经在server中指定(vhost_http_port);域名需要解析到公网服务器(frp-server)
  26. custom_domains = ipsec.shannonai.com

后台启动客户端:

  1. $ nohup ./frpc -c ./frpc.ini &

三、测试

ssh连接:

  1. $ ssh -p 6000 ubuntu@ipsec.shannonai.com

访问http服务:

  1. $ curl ipsec.shannonai.com:6065

在dashboard上面也可以看到相关的配置:

image_1ebdhuk671f7oq9o1egc174719cv13.png-99.1kB

注意:

1.如果想要多个client,需要把client的配置在多个内网服务器中配置(不同的服务名和远端端口),并启动client的后台服务。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注