Last active
August 3, 2016 15:36
-
-
Save loggerhead/fb6120e966c2fc28e474 to your computer and use it in GitHub Desktop.
Several commands start VPN and Shadowsocks
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In the first time, run this command on the Docker host to load the IPsec NETKEY kernel module:
Run following commands to start SS and VPN: