Merge pull request #59 from thomastweets/master

Add a parameter to use TAP instead of TUN device.
This commit is contained in:
Kyle Manna 2015-08-18 16:38:18 -07:00
commit e557222753
2 changed files with 11 additions and 5 deletions

View File

@ -44,6 +44,7 @@ usage() {
echo " -D Disable built in external dns (google dns)" echo " -D Disable built in external dns (google dns)"
echo " -N Configure NAT to access external server network" echo " -N Configure NAT to access external server network"
echo " -m Set client MTU" echo " -m Set client MTU"
echo " -t Use TAP device (instead of TUN device)"
} }
if [ "$DEBUG" == "1" ]; then if [ "$DEBUG" == "1" ]; then
@ -57,6 +58,8 @@ OVPN_SERVER=192.168.255.0/24
OVPN_DEFROUTE=1 OVPN_DEFROUTE=1
OVPN_NAT=0 OVPN_NAT=0
OVPN_DNS=1 OVPN_DNS=1
OVPN_DEVICE="tun"
OVPN_DEVICEN=0
OVPN_ROUTES=() OVPN_ROUTES=()
TMP_ROUTES=() TMP_ROUTES=()
OVPN_PUSH=() OVPN_PUSH=()
@ -66,7 +69,7 @@ TMP_PUSH=()
[ -r "$OVPN_ENV" ] && source "$OVPN_ENV" [ -r "$OVPN_ENV" ] && source "$OVPN_ENV"
# Parse arguments # Parse arguments
while getopts ":r:s:du:cp:DNm:" opt; do while getopts ":r:s:du:cp:DNm:t" opt; do
case $opt in case $opt in
r) r)
TMP_ROUTES+=("$OPTARG") TMP_ROUTES+=("$OPTARG")
@ -95,6 +98,9 @@ while getopts ":r:s:du:cp:DNm:" opt; do
m) m)
OVPN_MTU=$OPTARG OVPN_MTU=$OPTARG
;; ;;
t)
OVPN_DEVICE="tap"
;;
\?) \?)
set +x set +x
echo "Invalid option: -$OPTARG" >&2 echo "Invalid option: -$OPTARG" >&2
@ -135,7 +141,7 @@ fi
export OVPN_SERVER OVPN_ROUTES OVPN_DEFROUTE export OVPN_SERVER OVPN_ROUTES OVPN_DEFROUTE
export OVPN_SERVER_URL OVPN_ENV OVPN_PROTO OVPN_CN OVPN_PORT export OVPN_SERVER_URL OVPN_ENV OVPN_PROTO OVPN_CN OVPN_PORT
export OVPN_CLIENT_TO_CLIENT OVPN_PUSH OVPN_NAT OVPN_DNS OVPN_MTU export OVPN_CLIENT_TO_CLIENT OVPN_PUSH OVPN_NAT OVPN_DNS OVPN_MTU OVPN_DEVICE
# Preserve config # Preserve config
if [ -f "$OVPN_ENV" ]; then if [ -f "$OVPN_ENV" ]; then
@ -168,7 +174,7 @@ persist-tun
proto $OVPN_PROTO proto $OVPN_PROTO
# Rely on Docker to do port mapping, internally always 1194 # Rely on Docker to do port mapping, internally always 1194
port 1194 port 1194
dev tun0 dev $OVPN_DEVICE$OVPN_DEVICEN
status /tmp/openvpn-status.log status /tmp/openvpn-status.log
user nobody user nobody
@ -191,7 +197,7 @@ for i in "${OVPN_PUSH[@]}"; do
echo push \"$i\" >> "$conf" echo push \"$i\" >> "$conf"
done done
set +e set +e
# Clean-up duplicate configs # Clean-up duplicate configs
if diff -q "$bak_env" "$OVPN_ENV" 2>/dev/null; then if diff -q "$bak_env" "$OVPN_ENV" 2>/dev/null; then

View File

@ -34,7 +34,7 @@ get_client_config() {
echo " echo "
client client
nobind nobind
dev tun dev $OVPN_DEVICE
remote-cert-tls server remote-cert-tls server
remote $OVPN_CN $OVPN_PORT $OVPN_PROTO remote $OVPN_CN $OVPN_PORT $OVPN_PROTO