frp大法好

一直都有一个需求,就是想通过本地直接访问某台阿里云服务器上某个端口的服务,但又不能让其他的人能够访问得到。主要是gitlab的服务,以前被人攻击过,所以一直都是绑定了固定的IP,但是公司网络,或者家里的网络,不可能是固定的IP地址。所以也需要一个固定IP

以前一直都是考虑用的vpn,把阿里云的网络和本地的网络构建一个局域网。后来搭建了openvpn,wireguard,发现太难了,一直都是搭建能够连接得上,但阿里云服务器一直都是流量转发不出去。后来放弃了。

再考虑用阿里云自带的vpn,结果发现好贵。

后来又返回到考虑用frp,以前自己也用过frp,就是把公司内网的服务通过阿里云的服务器固定IP映射出来。

了解了一些,后来用frp的stcp服务。
相关配置如下:
中间服务端服务器:

[common]
bind_port = 7000
vhost_http_port = 6081
authentication_method = token
# auth token
token = 123456
[shadowsocks]
type = tcp
bind_addr = 0.0.0.0
listen_port = 12345

git服务器的设置

[common]
server_addr = 120.88.1.2
server_port = 7000
log_file = ./frpc.log

# trace, debug, info, warn, error
log_level = info
log_max_days = 3
# auth token
token = 123

[secret_tcp]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = 12345
local_ip = 127.0.0.1
local_port = 8000

配置一台本机的服务

[common]
server_addr = 120.1.1.1
server_port = 7000

log_file = ./frpc.log

# trace, debug, info, warn, error
log_level = info

log_max_days = 3
# auth token
token = 123456

[secret_tcp_visitor]
role = visitor
type = stcp
# the server name you want to visitor
server_name = secret_tcp
sk = 1234
# connect this address to visitor stcp server
bind_addr = 127.0.0.1
bind_port = 888
use_encryption = true
use_compression = true

需要注意的是两边的server_name要保持一致。
记录之。