购买腾讯云主机后FRP的配置的注意的要点

写在前面

需求和场景,是关键。我的需求是利用有公网IP的服务器中转数据。
所以,FRP目前是一个可选方案。知乎说Zerotier更好,还没来得及试。

FRP比较容易理解。公网主机在某个端口上监听,收到数据后向目标主机的目标端口转发,很容理解。

所以只剩下如何去做这一个问题了。

安装FRP

事实上不用装。
因为腾旭的主机给我们装好了。也不清楚是不是因我们提到这个事。
所以,systemctl status frps 能看到。
ps aux | grep frp, 则能看到两个。
frps和frpc
所以,不用装了。
关于frpc,为什么公网主机上也装了客户端,这个我也不太清楚。可以把它关了。没什么用。
可能是如果公网主机装了docker容器,如果想把容器中的数据引出,之用吧。我没有装容器的需求。

另外,这几个文件被 报病毒了。我没太在意。因为我在github上下的新版本的,它也提。所以就别理它。Let it be.

配置

服务端-公网主机

[common]
bind_addr = 0.0.0.0
bind_port = 7000

可以设置一个token
地址127.0.0.1也是可以的。
这里这个.0.0.0.0感觉好象不太对。
我的是这样的:

[common]
bind_port = 7000
log_file = /var/log/frps.log

log不是必须的。而且会占用空间。只是目前我正在调。

然后是客户端

[common]
server_addr = 43.x  # 腾讯云主机的公网 IP
server_port = 7000
token = 123456

[jira_service]
type = tcp
local_ip = 127.0.0.1
local_port = 8085
remote_port = 8085

[gitlab_service]
type = tcp
local_ip = 127.0.0.1
local_port = 8086
remote_port = 8086

Nginx的路由或者说代理

这个并不是一定要做的.
除非你有域名,而且又像阿里云那样支持二级域名的服务.

server {
    listen 80;
    server_name jira.mywebside.cn;

    location / {
        proxy_pass http://127.0.0.1:8085;  # 对应 frpc 的 remote_port
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name gitlab.mywebside.cn;

    location / {
        proxy_pass http://127.0.0.1:8086;  # 对应 frpc 的 remote_port
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

关于80端口

原理

没有什么难的.
唯一稍要注意是,关于80端口.
这个地方,我也没有想清楚.

后面我会说到.
显然,如果我们在公网主机,不装httpd,那么80端口是可以直传的。
但如果公网装了就不行了。
但这里,我也没有想清楚的地方是,是不是二级域名解析,一定要用类似Nginx这类路由。

现在我是选的这个路线。
那么我们在公网装了Nginx,那么公网主机的80端口就被占用了,这时如果想将内网机器的80端口导出,就需要两边都指向另一个端口,如81。就可以了。
也没有什么难的。

80Nginx的路由

server {
    listen 80;
    server_name web.mesite.cn;

    location / {
        proxy_pass http://127.0.0.1:81;  # 转发到 FRP 中转的 8081 端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

客户端frpc.ini中

[web_service]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8081

附录

frps.ini在哪里
如果是QQ云,显然通过ps或者 systemctl是能看到的。
一般在:/etc/frp/frps.ini

客户端,只需要把/usr/bin/frpc 拷到内网主机即可。
nginx的安装和重启
sudo apt update
sudo apt install nginx
sudo systemctl restart nginx

配置文件要注意,
/etc/nginx/conf.d/yoursite.cn.conf
这个文件是要自己创建的。

80端口,需要一个单独文件:
/etc/nginx/conf.d/www.yoursite.cn.conf

内网主机的frpc一定要做成服务
frpc -c ./frpc.ini
事实证明,它很容易崩掉。

其它的:为了公网IP,买个腾讯云,我觉得还是很划算的。要注意有云主机和轻量。
个人买轻量就行了,没必要买云主机。价钱差了好多。不要被那个优惠价所蒙蔽,因为一天几乎就只有一台特价的,你永远也抢不到。

最终我没有选阿里的。因为阿里一直也说清楚,低端的给不给IP(可能也是一样给的)。实际,这个IP不固定,也没有什么,只要是公网即可。当然固定了就更省事了,腾讯这点是不错的,69块,就有一个固定的公网IP,还要啥自行车。今晚我连不上,我看了下,显然是因为我自己的内网的主机的客户端崩了,腾讯云的主机的服务还是好好的。明天要把客户端也做成服,或者放container里。反正感觉还不错。

关于SSH,这个很简单了,因为腾讯给的主机,装我将frpc也做成服务,里面恰好有一个ssh,这样自己的客户端,习惯性,也搞了个SSH,两边还用了一个端口,只要不一样就行了。

frp是一种用于内网穿透的工具,可以实现将内网服务暴露到公网上,从而可以通过公网访问内网服务。腾讯云是一家云计算服务提供商,提供了各种云计算产品和服务,包括虚拟机、云数据库、云存储等。 要在Mac上连接腾讯云使用frp,可以按照以下步骤进行操作: 1. 在腾讯云上创建一个虚拟机实例,并确保该实例已经开启并运行正常。 2. 在腾讯云控制台中获取虚拟机实例的公网IP地址。 3. 在Mac上下载并安装frp客户端,可以从frp的官方网站或者GitHub上获取最新版本的客户端。 4. 配置frp客户端,打开frpc.ini配置文件,在文件中添加以下内容: ``` [common] server_addr = 腾讯云公网IP server_port = frp服务端口 token = 认证token [ssh] type = tcp local_ip = 本地IP local_port = 本地端口 remote_port = 远程端口 ``` 其中,腾讯云公网IP是你的虚拟机实例的公网IP地址,frp服务端口是你在腾讯云配置frp服务端口,认证token是用于验证客户端身份的密钥,本地IP是Mac的本地IP地址,本地端口是你要映射的本地服务端口,远程端口是在腾讯云上映射的端口。 5. 保存并关闭frpc.ini配置文件。 6. 在终端中运行frp客户端,命令如下: ``` ./frpc -c /path/to/frpc.ini ``` 其中,/path/to/frpc.ini是你保存frpc.ini配置文件的路径。 7. 等待frp客户端连接到腾讯云frp服务端,连接成功后,你就可以通过腾讯云的公网IP和映射的远程端口访问Mac上的本地服务了。 希望以上步骤对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值