type
status
date
slug
summary
tags
category
icon
password
comment_flag
SLUGS

场景

需求:
  • Linux主机A,可以访问外网,但是没有公网ip;部署了wandb、ssh或其他程序;
  • 个人PC(例如MacOS),可以访问外网,也没有公网ip,与主机A不在同一局域网。希望能访问主机A上的wandb,且通过ssh连接主机A。
思路:
  • 拥有一台远程Linux服务器B,可以访问外网,且有公网ip(这样主机A和个人PC都可以访问服务器B)。
  • 使用frp来将服务器B当作“代理”:
notion image

下载frp软件

在github上下载相应的服务器端与客户程序:

服务器B上的操作

安装frps并配置

关注以下文件:
前两个文件(s结尾代表server)分别是服务端程序和服务端配置文件,后两个文件(c结尾代表client)分别是客户端程序和客户端配置文件。此时,我们在配置公网服务器,因此修改frps.toml:

添加到systemd自启动

vim /etc/systemd/system/frps.service
并且你需要在防火墙里放行7000、7500这两个端口。
在个人PC上访问 http://服务器ip:7500,就可以看到frp server的状态。

主机A的配置

安装frpc并配置

frpc.toml
上面的[[proxies]]板块是添加的代理服务

添加到systemd自启动

类似服务器B的操作,这里假设主机A是以普通用户添加systemd自启动。
如果主机A的普通用户没有开启systemd自启动功能,参考systemd/User - ArchWiki (archlinux.org)执行loginctl enable-linger username开启。
vim ~/.config/systemd/user/frpc.service

达到的效果

  • 个人PC通过ssh xxx@服务器ip:221就能通过代理服务器远程连接主机A了。
  • 个人PC通过访问http://@服务器ip:1991就能通过代理服务器访问主机A中的wandb服务了。
参考:
docker-compose搭建FreshRSS服务代理软件Clash Verge配置记录
Loading...