道者编程

frp内网穿透

一:官方介绍:

frp是一种快速反向代理,可帮助您将NAT或防火墙后面的本地服务器公开到Internet。目前,它支持TCP和UDP,以及HTTP和HTTPS协议,在这些协议中,请求可以通过域名转发到内部服务。frp还具有P2P连接模式。

官方文档:https://gofrp.org/

二:下载软件包

https://github.com/fatedier/frp/releases

我这里下载两个,一个win和一个linux的,注意对应版本号。

我这里要实现这么一个玩意儿,通过访问linux服务器(公网),穿透到win服务器(内网)。要实现这个必须满足两个条件:

1:需要有一个公网固定IP的linux服务器

2:linux和win通过frp保持连接

三:服务端安装:

我这里用linux做服务端,我下载的是:frp_0.42.0_linux_amd64.tar.gz

tar -xvf frp_0.42.0_linux_amd64.tar.gz
 解压后进入目录:

打开配置文件frps.ini看一下:

[common]
bind_port = 7000

 这里先不管,我们把上面这些干掉,加入以下:

[common]
bind_port = 7000 #服务端口,后面另外一端就配置指向这个端口
vhost_http_port = 8080 #vhost_http_port 用于接收 HTTP 请求,还额外提供了基于 HTTP 协议的功能。

注意:这里的7000端口必须要打开,否则从外面访问不进来,我这里是为了说明,实际配置中必须去掉注释,否则有意想不到的错误

然后启动:

nohup ./frps -c ./frps.ini &
 报:nohup: ignoring input and appending output to 'nohup.out' 忽略错误,直接回车

看看启动是否成功:

# ps -ef | grep frps
root     24365 17909  0 02:07 pts/0    00:00:00 ./frps -c ./frps.ini
root     24392 17909  0 02:07 pts/0    00:00:00 grep --color=auto frps
 服务端启动OK

四:配置内网 win环境

我这里下载的是frp_0.42.0_windows_amd64.zip。直接解压,我这里放在D盘吧,编辑ftpc.ini

[common]
server_addr = x.x.x.x #这个是上面那个服务端,linux的ip
server_port = 7000 #这个是上面那个服务端的绑定端口
# 我这里配置两个访问域名
[web]
type = http
local_ip = 127.0.0.1 #映射到本地ip
local_port = 8081 #映射到本地端口
custom_domains = www.abc.com

[web2]
type = http
local_ip = 127.0.0.1
local_port = 8082
custom_domains = www.efg.com

实际配置的时候把上面那个注释去掉,不然可能会报错

(1):将 www.abc.com 和 www.efg.com 的域名 A 记录解析到 IP x.x.x.x,如果服务器已经有对应的域名,也可以将 CNAME 记录解析到服务器原先的域名。或者可以通过修改 HTTP 请求的 Host 字段来实现同样的效果。

(2):通过浏览器访问 http://www.abc.com:8080 即可访问到处于内网机器上 8081 端口的服务,访问 http://www.efg.com:8080 则访问到内网机器上 8082端口的服务。

cmd 到目录,执行:

frpc.exe -c frpc.ini

有没有发现什么?外网用的是frps,内网用的是frpc,两个都在一个包下面,分别配置、启动。


最新评论:
1楼 广东省深圳市 电信 发表于 2022-05-05 15:06:42
牛牛牛
共有 1 条记录  首页 上一页 下一页 尾页 1
我要评论:

看不清楚