Skip to content

Instantly share code, notes, and snippets.

@loggerhead
Last active August 3, 2016 15:36
Show Gist options
  • Save loggerhead/fb6120e966c2fc28e474 to your computer and use it in GitHub Desktop.
Save loggerhead/fb6120e966c2fc28e474 to your computer and use it in GitHub Desktop.
Several commands start VPN and Shadowsocks
#!/bin/bash
if [ -z "$SS_PASSWORD" ]; then
SS_PASSWORD="SET_YOUR_PASSWORD_HERE"
fi
if [ -z "$SS_METHOD" ]; then
SS_METHOD="aes-256-cfb"
fi
if [ -z "$SS_SERVER_PORT" ]; then
SS_SERVER_PORT=995
fi
if [ -z "$VPN_USER" ]; then
VPN_USER="SET_YOUR_USERNAME_HERE"
fi
if [ -z "$VPN_PSK" ]; then
VPN_PSK=$SS_PASSWORD
fi
if [ -z "$VPN_PASSWORD" ]; then
VPN_PASSWORD=$VPN_PSK
fi
IDS=$(docker ps -a -q --filter ancestor=hwdsl2/ipsec-vpn-server --format='{{.ID}}')
IDS+=" $(docker ps -a -q --filter ancestor=oddrationale/docker-shadowsocks --format='{{.ID}}')"
if [ -n "$IDS" ]; then
docker stop $IDS && docker rm $IDS
fi
# IPsec
# https://github.com/hwdsl2/docker-ipsec-vpn-server
docker run --name ipsec-vpn-server \
-d --privileged \
-p 500:500/udp \
-p 4500:4500/udp \
-e VPN_USER=$VPN_USER \
-e VPN_IPSEC_PSK=$VPN_PSK \
-e VPN_PASSWORD=$VPN_PASSWORD \
-v /lib/modules:/lib/modules:ro \
hwdsl2/ipsec-vpn-server
# Shadowsocks
docker run --name shadowsocks-server \
-d -p $SS_SERVER_PORT:$SS_SERVER_PORT \
oddrationale/docker-shadowsocks -s 0.0.0.0 -p $SS_SERVER_PORT -k $SS_PASSWORD -m $SS_METHOD
echo
cat << EOF
Shadowsocks {
password : $SS_PASSWORD
port : $SS_SERVER_PORT
encryption: $SS_METHOD
}
VPN (Cisco IPSec) {
user : $VPN_USER
password : $VPN_PASSWORD
shared secret: $VPN_PSK
}
EOF
@loggerhead
Copy link
Author

loggerhead commented Aug 3, 2016

  1. In the first time, run this command on the Docker host to load the IPsec NETKEY kernel module:

    sudo modprobe af_key
  2. Run following commands to start SS and VPN:

    sudo \
    VPN_USER=loggerhead \
    SS_PASSWORD=loggerhead bash fuck_gfw.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment