Mac环境使用DigitalOcean租用VPS,部署Docker容器搭建SS和VPN专属梯子及Docker命令整理

技术在于折腾。

由于平时查阅受限,导致一些国外优秀的文章在国内无法查看,故自己动手丰衣足食。(ps:仅限技术交流,不用于商业用途)

关于VPS有很多种,例如:DigitalOcean、BandwagonHost、Vultr等,可以根据自己的经济能力自行选择。

  • 以DigitalOcean举例

一、官网注册

https://cloud.digitalocean.com/
ps:注册费用$5,现在还送$10,一共$15,如果选用最便宜的服务器,可以使用3个月。当然,你也可以租用别家的VPS,适合自己就好.

DigitalOcean官网

二、创建虚拟服务器

创建虚拟服务器

三、选择服务器

  • 系统默认是乌班图,喜欢CoreOS、CentOS可以自行选择
  • 价钱是每月的使用费以及设备的配置,如果平时上网话,5刀的足以
  • 线路使用纽约、旧金山都可以,建议使用旧金山的
    选择服务器、使用金额及线路

四、选择连接方式,建议使用ssh连接(安全)

选择设置ssh

配置ssh
ps:关于配置ssh可以在settings里面找到。

具体查看公钥

1
cat ~/.ssh/id_rsa.pub

查看ssh

  • 再把查看的公钥粘贴至对话框

粘贴ssh

五、连接服务器及部署

虚拟服务器IP

  • 连接服务器,生成的IP地址
1
ssh root@xxx.xxx.xxx.xxx

连接服务器

1.通过部署Docker容器方式

1
sudo apt-get install docker.io

ps:如果出现部署不上,出现如下情况,执行下面命令。

情况一: 提示需要更新。

情况一:

1
sudo apt-get update
情况二: 找不到docker.io(Ubuntu里,Docker叫docker.io),那就采用其它安装方式安装最新版本的Docker。

情况二:
此命令会把Docker官方提供的最新版本的软件仓库替换Ubuntu的相应仓库。有一点要注意,采用这种方式进行安装,Docker的软件包名应该叫lxc-docker。此时,Docker命令的名字还是docker。而采用之前上面的安装方式,Docker命令的名字应该叫docker.io。

1
curl -sSL https://get.docker.com/ | sudo sh

再升级Docker

1
sudo apt-get update && sudo apt-get upgrade

2. 通过部署脚本方式

1
wget --no-check-certificate -O shadowsocks-libev_CN.sh https://raw.githubusercontent.com/uxh/shadowsocks_bash/master/shadowsocks-libev_CN.sh && bash shadowsocks-libev_CN.sh

六、连接

(一)、通过Docker容器方式部署连接仓库

1、通过shadowsocks(ss)连接.
  • 通过DockerHub搜索docker-shadowsocks

选择docker-shadowsocks

  • 从DockerHub上,拉取shadowsocks容器
1
docker pull oddrationale/docker-shadowsocks
  • 设置仓库的端口、密码、及加密方式
    ps:
    xxxxxx 是你要设置的密码
    1984 是你的端口号
1
docker run -d -p 1984:1984 oddrationale/docker-shadowsocks -s 0.0.0.0 -p 1984 -k xxxxxx -m aes-256-cfb

对于为什么端口的设置,因为在启动镜像时,宿主机映射到docker容器上的端口必须要和shadowsocks上的设置的端口一致,换句话说就是冒号后边的端口号和最后的端口必须要保证一致。因为想要外界能够访问容器内部应用,就需要给从宿主机通过-p参数给宿主机和容器之间的端口形成一对一的映射来访问,而容器内则需要保证shadowsocks的端口和被映射端口一致即可。

  • 查看docker 列表

ps:如果出现up就表明部署成功

1
docker ps

看到docker容器的列表

2、通过IPsec VPN连接.
  • 通过DockerHub搜索ipsec

  • 从DockerHub上,拉取shadowsocks容器
1
docker pull hwdsl2/ipsec-vpn-server
  • 运行 IPsec VPN 服务器
1
sudo modprobe af_key
  • 使用本镜像创建一个新的Docker容器 (env文件里面是指定变量的,需要自己单独创建)

Ps: 自己创建env文件并把自己定义的名字写在里面
  VPN_USER: 用户名
  VPN_PASSWORD: 用户密码

1
2
3
VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password

Ps: 下面代码需要全部写在终端里面,当然也可以不加 --env-file ./env \ 这一行,如果不写VPN_USER 会默认为 vpnuser,并且 VPN_IPSEC_PSKVPN_PASSWORD 会被自动随机生成。
  ipsec-vpn-server: 容器名字
  ./env: 变量名字路径
  4500: 端口

1
2
3
4
5
6
7
8
9
docker run \
--name ipsec-vpn-server \
--env-file ./env \
--restart=always \
-p 500:500/udp \
-p 4500:4500/udp \
-v /lib/modules:/lib/modules:ro \
-d --privileged \
hwdsl2/ipsec-vpn-server
  • 获取 ipsecVpn 登录信息
1
docker logs ipsec-vpn-server
1
docker logs xxxx: 容器名字

在命令输出中查找这些代码:
Connect to your new VPN with these details:
Server IP: your_vpn_server_ip
IPsec PSK: your_ipsec_pre_shared_key
Username: your_vpn_username
Password: your_vpn_password

  • 添加vpn地址

  • 共享密钥填写IPsec PSKs

(二)、 通过脚本方式部署连接仓库

  • 选择安装: 1

  • 设置密码、端口及加密方式

ps: 加密方式建议选择 aes-256-cfb

  • 回车安装,安装成功

安装过程会经历几分钟,然后把配置信息保存好

七、添加服务器

  • 下载ss客户端(shadowsocks),并添加。

GitHub官方提供下载dmg:
https://github.com/shadowsocks/shadowsocks-iOS/releases

shadowsocks下载

ps: 新一代shadowsocks客户端:
https://github.com/shadowsocks/ShadowsocksX-NG/releases

  • 安装后配置服务器,打开服务器设置,并添加服务器。

添加服务器

  • 把创建的服务器Ip、端口号及创建的加密方式密码填入即可

ps:
如果是通过Docker安装的,默认端口号填写的1984,加密方式选择aes-256-cfb

设定服务器

八、Docker命令

  • 查看安装容器
1
docker ps
  • 暂停容器

ps: 查询过后NAMES,为启动镜像后随机生成的容器名.

1
docker stop xxx(容器名字)
  • 删除容器
    ps: 删除容器前需要暂停容器
1
docker rm xxx(容器名字)
  • 启动容器
1
docker start xxx(容器名字)
  • 拉取安装镜像仓库
1
docker pull xxx(镜像名字)
  • 查看下载镜像仓库
1
docker images
  • 删除下载镜像仓库
1
docker rmi xxx(镜像名字)