summaryrefslogtreecommitdiff
path: root/src/badvpn.sh
blob: b4c071fce2ebaa3a5367ea8cc13381fc8d237931 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/bash
LIBROOT="$(cd "$(dirname "${BASH_SOURCE[0]:-${(%):-%x}}")" && pwd)"
BINPATH=$LIBROOT/../bin
PKGPATH=$LIBROOT/../pkg
IPLISTPATH=$LIBROOT/../iplist
mkdir -p $PKGPATH
DEFAULTROUTETXT=$(ip route get 114.114.114.114 | awk 'NR==1{print}')
DEV=$(echo $DEFAULTROUTETXT | awk '{print $3}')
DEFAULTROUTE=$(echo $DEFAULTROUTETXT | awk '{print $1}')

GOTUN2SOCKS_BIN_PATH="$BINPATH/gotun2socks_$WORDSTUFFIX"
function badvpn::install_badvpn() {
    case $OSRELEASE in
    ubuntu)
        apt update
        apt-get install -y --no-install-recommends build-essential net-tools \
                cmake libssl-dev pkg-config libnspr4-dev libnss3-dev
        cd $PKGPATH
        git clone https://github.com/ambrop72/badvpn
        cd badvpn
        mkdir build
        cd build
        cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
        make install
        ;;
   arch)
        pacman -Sy --noconfirm badvpn
        ;;
   esac
}

function badvpn::stoptun() {
    killall badvpn-tun2socks 2>&1 > /dev/null
    ip tuntap del dev tun64 mode tun
}


function badvpn::server_badvpn() {
   ip tuntap del dev tun88 mode tun
   ip tuntap add dev tun88 mode tun
   ip addr add 10.19.88.64/24 dev tun88
   ifconfig tun88 up
   badvpn-udpgw --listen-addr 10.19.88.64:7300 --loglevel none &
}

function badvpn::makeudptun() {
    badvpn::stoptun
    ip tuntap add dev tun64 mode tun
    ip addr add 10.19.89.63/24 dev tun64
    ip -6 addr add fd00::01:1989:0604:63/64 dev tun64
    ifconfig tun64 up
    ip route add 10.19.89.0/24 dev tun64
    ip route add 10.19.88.0/24 via 10.19.89.64 dev tun64
    badvpn-tun2socks --tundev tun64 \
            --netif-ipaddr 10.19.89.64 \
            --netif-ip6addr fd00::01:1989:0604:64 \
            --netif-netmask 255.255.255.0 \
            --socks-server-addr 127.0.0.1:10800 \
            --udpgw-remote-server-addr 10.19.88.64:7300 \
            --loglevel none 2>&1 > /dev/null &
}


function badvpn::makeudptuncustom() {
    badvpn::stoptun
    ip tuntap add dev tun64 mode tun
    ip addr add 10.19.89.63/24 dev tun64
    ip -6 addr add fd00::01:1989:0604:63/64 dev tun64
    ifconfig tun64 up
    ip route add 10.19.89.0/24 dev tun64
    ip route add 10.19.88.0/24 via 10.19.89.64 dev tun64
    badvpn-tun2socks --tundev tun64 \
            --netif-ipaddr 10.19.89.64 \
            --netif-ip6addr fd00::01:1989:0604:64 \
            --netif-netmask 255.255.255.0 \
            --socks-server-addr $1 \
            --udpgw-remote-server-addr 10.19.88.64:7300 \
            --loglevel none 2>&1 > /dev/null &
}

function badvpn::maketun() {
    badvpn::stoptun
    ip tuntap add dev tun64 mode tun
    ip addr add 10.19.89.63/24 dev tun64
    ip -6 addr add fd00::01:1989:0604:63/64 dev tun64
    ifconfig tun64 up
    route add -net 10.19.89.0/24 dev tun64
    badvpn-tun2socks --tundev tun64 \
            --netif-ipaddr 10.19.89.64 \
            --netif-ip6addr fd00::01:1989:0604:64 \
            --netif-netmask 255.255.255.0 \
            --socks-server-addr 127.0.0.1:10800 \
            --loglevel none 2>&1 > /dev/null &
}

function badvpn::tunroute(){
    nt::world_route6 fd00::1:1989:604:64 tun64
    ip route delete default
    ip route add default via 10.19.89.64 dev tun64
}

function badvpn::world_route() {
    nt::world_route6 fd00::1:1989:604:64 tun64
    nt::world_route 10.19.89.64 tun64
}