云服务器配置内网穿透(frp)

「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战」。

前言

事情是这样的,最近各种云服务厂商都在搞活动卖云服务器,然后呢有个朋友就想和我搭伙买一个,只需要给他开一个内网穿透的端口然后AA,我心想这么好的事情那咱得干啊,说干咱就干啊。

首先内网穿透的目的就是为了让别人请求拥有公网IP的服务器某个端口时,转发到我们没有公网IP的服务器上,大致的流程如下:

image.png

正文

这里采用frp进行内网穿透,原理和一些理论东西就不说了,可以移步查看官方文档 gofrp.org

文章使用的环境
一个拥有公网ip的服务器 作为服务端(CentOS 8)
一个本地的服务器 作为客户端(CentOS 8)

开始配置

下载frp

服务端和客户端 下载frp(这里用的是0.22.0,现在最新版已经到0.38.0了,如果使用其它版本把下面链接所有的22修改成对应版本号就可以了,配置的方式都大同小异)

`wget 修改配置文件 frps.ini vim frps.ini 添加以下信息 [common] bind_addr = 0.0.0.0 bind_port = 7000 dashboard_port = 7500 privilege_token = 自定义的token,用于客户端验证使用 dashboard_user = admin dashboard_pwd = admin

服务端详细配置信息参数的说明看官方文档:gofrp.org/docs/refere…

启动服务端 # 启动 ./frps -c frps.ini # 后台运行 nohup ./frps -c frps.ini >/dev/null 2>&1 & github.com/fatedier/fr…

解压

下载完之后会是一个压缩包解压一下:

tart -zxvf frp_0.22.0_linux_amd64.tar.gz

这里有两个主要关注的文件:frpc.inifrps.ini 前者是客户端配置,后者是服务端配置 客户端不需要 frps.inifrps 文件,可以直接删除 服务端不需要 frpc.inifrpc 文件,可以直接删除

配置服务端(具有公网ip的服务器)

修改配置文件 frps.ini
vim frps.ini
添加以下信息

        [common]
	bind_addr = 0.0.0.0
	bind_port = 7000
	dashboard_port = 7500
	privilege_token = 自定义的token,用于客户端验证使用
	dashboard_user = admin
	dashboard_pwd = admin
复制代码

服务端详细配置信息参数的说明看官方文档:gofrp.org/docs/refere…

启动服务端

	# 启动
	./frps -c frps.ini
	# 后台运行
	nohup ./frps -c frps.ini >/dev/null 2>&1 &
复制代码

配置客户端(本地服务器)

修改配置文件
frpc.ini
vim frpc.ini

添加以下信息

[common]
server_addr = 服务端公网ip
server_port = 7000
privilege_token = 自定义的token,和服务端设置保持一致

[http]
type = tcp
local_port = 本地提供服务的端口,比如8080
local_ip = 127.0.0.1
remote_port = 服务端转发的端口,比如8081
复制代码

服务端详细配置信息参数的说明看官方文档:gofrp.org/docs/refere…
注意:这样配置就是把具有公网ip的服务器8081端口转发到本地服务器的8080端口,当别人访问公网ip服务的8081端口真正处理请求的是本地服务器的8080端口。

可能遇到的问题

login to server failed: authorization failed

image.png 解决办法
1、查看客户端和服务端token是否一致
2、查看客户端和服务端是否都是使用的 privilege_token 或者 token,有遇到过服务端使用 token ,客户端使用 privilege_token ,客户端和服务端需要保持一致

[W] [control.go:332] [2fdf3d977a8855c9] new proxy [http] error: port unavailable

image.png 解决办法:vhost_http_port不用写,因为客户端已经监听了10101的端口,服务端再监听就无效了

Guess you like

Origin juejin.im/post/7054565280403423268