一行命令搭建内部的管道(2)

一行命令搭建内部的管道(2)

在博客《边缘计算k8s集群之SuperEdge》中,笔者基于ECK搭建了边缘集群并添加了节点。通过边缘集群,我们可以很方便的管理各个地域的节点,本地、各云厂商的机房、客户所在地、海外的都可以。

在博客《一行命令搭建内部的管道》中,笔者讲述了如何基于ipsec-vpn-server搭建内部管道。

在本篇内容,我们将讲述如何使用shadowsocks,通过一行命令即可搭建内部的管道,用于锻炼技术,技术学习。

shadowsocks

shadowsocks是一个轻量级代理,易于部署、开源、超级快、跨平台、灵活加密。

优势

相比ipsec-vpn-server,shadowsocks胜在轻量灵活,性能更好,更隐蔽更安全,一般作为代理的首推方式。但是如果需要全局代理,那不如ipsec-vpn-server。

官方镜像地址:https://hub.docker.com/r/shadowsocks/shadowsocks-libev

Github地址:https://github.com/shadowsocks

接下来,我们来演示下如何一行命令即可搭建自己的代理。

Docker部署

参考脚本如下所示:

docker run -e PASSWORD=<password> -p <server-port>:8388 -p <server-port>:8388/udp -d shadowsocks/shadowsocks-libev

其中,Password即远程连接密码。其他参数,可以查看Docker镜像的官网。

K8s部署

参考Yaml如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "2"
  generation: 2
  labels:
    k8s-app: shadowsocks-libev
  name: shadowsocks-libev
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: shadowsocks-libev
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      labels:
        k8s-app: shadowsocks-libev
    spec:
      containers:
      - env:
        - name: PASSWORD
          value: "your password"
        image: shadowsocks/shadowsocks-libev
        imagePullPolicy: IfNotPresent
        name: shadowsocks-libev
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
          requests:
            cpu: 250m
            memory: 256Mi
        securityContext:
          privileged: false
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      hostNetwork: true
      imagePullSecrets:
      - name: qcloudregistrykey
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
kubectl create -f shadowsocks.yaml

执行成功后,就可以下载客户端进行连接了。

运行

这里有不清楚的,可以参考笔者之前的教程:《使用Kubectl部署应用》。

客户端下载

如下图所示,shadowsocks支持多种客户端:

shadowsocks

windows客户端还是WPF开发的,下载地址为:https://github.com/shadowsocks/shadowsocks-windows/releases

Android客户端:https://github.com/shadowsocks/shadowsocks-android/releases

IOS客户端:https://github.com/shadowsocks/ShadowsocksX-NG/releases/tag/v1.9.4

客户端连接配置

客户端的配置较为简单,以windows为例参考如下:

服务器配置

加密方式在启动时的日志中会输出。

设置user-rule

在Windows客户端中,支持设置user-rule来自定义网址代理规则。注意不要修改pac.txt。规则定义如下:

  1. 通配符支持,如 .example.com/ 实际书写时可省略 * 如.example.com/ 意即 .example.com/
  2. 正则表达式支持,以 \ 开始和结束, 如 [\w]+://example.com\
  3. 例外规则 @@,如 @@.example.com/ 满足 @@后规则的地址不使用代理
  4. 匹配地址开始和结尾 |,如 |http://example.com、example.com | 分别表示以 http://example.com 开始和以 example.com 结束的地址
  5. || 标记,如 ||example.com 则 http://example.com、https://example.com、ftp://example.com 等地址均满足条件
  6. 注释!如!Comment

每行一个规则,填写 / 修改后会自动更新一次 PAC (可以打开pac.txt查看),此时 user-rule.txt 中的规则会自动添加到 pac.txt 中,然后再重启一下程序即可生效。

最后

是不是超级简单呢?赶紧实践实践吧?

如果对Docker和k8s还存在疑问,可以参考笔者之前的教程、博客和书籍《Docker+Kubernetes应用开发与快速上云》来解决问题以及查看日志。

其他资料:


 本篇
一行命令搭建内部的管道(2) 一行命令搭建内部的管道(2)
一行命令搭建内部的管道(2)在博客《边缘计算k8s集群之SuperEdge》中,笔者基于ECK搭建了边缘集群并添加了节点。通过边缘集群,我们可以很方便的管理各个地域的节点,本地、各云厂商的机房、客户所在地、海外的都可以。 在博客《一行命令搭
下一篇 
轻量易用的微信Sdk发布之Magicodes.Wx.Sdk 轻量易用的微信Sdk发布之Magicodes.Wx.Sdk
轻量易用的微信Sdk发布之Magicodes.Wx.Sdk概述最简洁最易于使用的微信Sdk,包括公众号Sdk、小程序Sdk、企业微信Sdk等,以及Abp VNext集成。 GitHub地址:https://github.com/xin-l
  目录