不通过公网ip随时访问服务器的docker容器

如果你苦于没有公网IP,又想在非局域网下访问服务器上的docker容器,这个时候可以考虑使用开源的frp配置反向代理。前提: 需要一台拥有公网IP的服务器。

下载frp并解压

wget https://github.com/fatedier/frp/releases/download/v0.58.0/frp_0.58.0_linux_amd64.tar.gz

tar -zxvf 文件名.tar.gz

在拥有公网ip的服务器端配置frp的server部分(以下简称服务端)

cd到解压的目录下然后vim frps.toml,并填入如下内容(一般已经配置好了为 bindPort = 7000)

bindPort = 7000

在客户端(家里服务器)配置frp的client部分(以下简称客户端)

同样到解压的目录下vim frpc.toml, 配置如下:

serverAddr = "127.0.0.1"	#公网服务器ip
serverPort = 7000	# 同服务端配置的端口

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
# 客户端需要访问的docker容器端口,若为22,则可直接ssh到客户端
localPort = 9000	
remotePort = 9000   # 服务端端口(需开放此端口)

运行

在服务端上运行

./frps -c ./frps.toml

在客户端上运行

./frpc -c ./frpc.toml

至此就可以通过服务端公网ip:port来访问客户端容器,此处为ip:9000

设置开机自启动,可参考frp文档

  1. 安装systemd
# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd

# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd
  1. 创建frps.service文件
sudo vim /etc/systemd/system/frps.service

写入如下内容

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml

[Install]
WantedBy = multi-user.target

设置开机自动sudo systemctl enable frps

后期管理:

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值