HomeLab 全记录

服务器主机挑选

联想workstation P500

支持志强 e5 v3 CPU。

虚拟化方案使用 esxi 来进行。

如果esxi 盘还在,但是换机器了,如何再次挂载上去:

https://blog.sailark.com/index.php/archives/72/

内网穿透方案

传统来说就直接FRP 可以搞定了,但是觉得这个方案配置的时候还是比较繁琐。

端到端的转发。

所以干脆我们就直接把内网给接到服务器上来。再加上几条路由,来构建自己的混合云

Server 端来进行 Wireguard 的安装。

sudo yum install elrepo-release epel-release
sudo yum install kmod-wireguard wireguard-tools

wireguard 控制面板,直接docker-compose 跑起来没什么问题

附上配置

version: '3.6'
services:
  wg-gen-web-demo:
    image: vx3r/wg-gen-web:latest
    container_name: wg-gen-web-demo
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - WG_CONF_DIR=/data
      - WG_INTERFACE_NAME=wg0.conf
      - SMTP_HOST=smtp.gmail.com
      - SMTP_PORT=587
      - [email protected]
      - SMTP_PASSWORD=******************
      - SMTP_FROM=Wg Gen Web <[email protected]>
      #- OAUTH2_PROVIDER_NAME=fake
      - OAUTH2_PROVIDER_NAME=github
      - OAUTH2_PROVIDER=https://github.com
      - OAUTH2_CLIENT_ID=xxx
      - OAUTH2_CLIENT_SECRET=xxx
      - OAUTH2_REDIRECT_URL=xxx
      -  WG_STATS_API=http://172.17.0.1:8182
    volumes:
      - /etc/wireguard:/data
  wg-json-api:
    image: james/wg-api:latest
    container_name: wg-json-api
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
    network_mode: "host"
    command: wg-api --device wg0 --listen 172.17.0.1:8182
    depends_on:
      - wg-gen-web-demo

https://github.com/vx3r/wg-gen-web

重要 主机到内网的LAN to LAN

前面的思想是 使用 wg 把 云主机 和 本地的路由来放在同一个子网下。

在云服务器上可以访问任何的的内网IP,这样的话在大局域网下的服务暴露和转发就会非常的方便了。

在实践的过程中还是遇到不少麻烦的 ,在这里记录一下

wg 到子网的路由问题。

在服务端的wg0中需要配置 allip 为 你需要访问的子网段。这样他会自动的加上路由

但是注意,在配置客户端的时候,不能加上内网重叠部分,否则会导致内网被路由到了云主机,导致无法访问

AllowedIPs = 10.77.0.2/32, 192.168.3.0/24, 192.168.0.0/24

内网转发1

这样流量就通过了内网的路由上,在路由器上,需要进行IP规则的转发,这里使用的是openwrt,在防火墙中配置。

Untitled

这样流量就到了我们的路由器的子网。

内网转发2

因为源IP 是wg 的,所以在内网会遇到一些IP限制,所以这里用上 SNAT,把wg 的远程IP 重写为路由器的IP这样就可以在内网畅通无阻了

Untitled

问题

这里记录一个很奇怪的问题

在wg建连之后,会自动的加上 远端服务器公网IP到路由内网LAN ip 的一个路由,导致直接无法访问,从而导致wg 建连失败。

所以这里手动的加上了云服务器的公网IP到公网网关的 一个路由,这样的话了顶掉他的规则。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注