[frps selfhost版]有没想过起个容器就能打通整个内网呢? 使用容器打通受限网络: frp+ssh组合镜像以及sshuttle打通网络
使用容器打通受限网络: frp+ssh组合镜像以及sshuttle实现打通任意环境所有内网服务(包括k8s)(web页面以及终端访问)
前言
开发过程中总是能遇到需要访问其他公司内网的情况, 一般常规方案都是由其他公司提供vpn访问, 或者jumpserver进行内网服务器连接.
这时, 一般就会遇到几个痛点:
- 想要访问k8s中的容器服务, k8s内部域名svc.cluster.local
无法直接使用
- 要装很多乱七八糟的vpn软件, 不同公司用的vpn可能就不一样, 有的vpn甚至像流氓软件一样, 有各种限制
- 有的公司不提供vpn或jumpserver, 只能去现场
- 家里网络和公司网络不互通的问题(在公司想访问家里的一些服务, 或在家想访问公司的一些服务等)
然而, 打通网络后, 都有哪些好处呢?
- 自己本地电脑不在需要安转太多的vpn软件了
- 所能触碰到的每台内网服务器, 都能成为你在何时何地都能访问或当做跳板机的工具
- 内网才能打开的页面, 随时都能打开了
- 网页系统应用能用浏览器打开了
- nacos能用浏览器打开了
- 内网才能访问的服务器, 随时都能访问了
- 数据库能通过idea或者DBeaver可视化连接了
也就是说, 打通了网络, 也就打通了ssh访问, ssh能到达的地方, 都能将自己的本地电脑拉入到同一网络中进行互通操作
前提
需要有机会把容器起起来, 一般有以下几种方式, 选一个方便去操作的就行, 当容器起来之后, 网络就打通了, 虚拟机等过渡工具就可以删掉了, 不需要了
- 通过jumpserver页面登录
- 自己本身就安转了vpn
- 找安装了vpn的同事
- 专门找台机用于安装各种乱七八糟的vpn也行
- 当然起个虚拟机去安转也行
第一步: 编写Dockerfile, 用于制作镜像
随便找台Linux系统, 或者自己电脑也行(就是麻烦点, 可能构建镜像时, 需要指定构建平台等), 我这里选择用x86架构的centos系统, 然后, 找个合适的目录, 例如: /www/container/frp-ssh
- 创建
Dockerfile
文件
# vim Dockerfile
FROM debian:trixie-slim
WORKDIR /www
# 安装必要的软件包
RUN apt-get update && \
apt-get install -y openssh-server openssh-client curl wget locales gettext tini && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 生成并配置 locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
locale-gen && \
update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8