This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| technical:vpn:tinc [2022/09/12 19:17] – jc | technical:vpn:tinc [2023/05/13 18:14] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| < | < | ||
| - | # Install Tinc | + | # Tinc VPN |
| - | # Generate Keys | + | |
| - | # Config | + | ## Install Tinc |
| - | # Startup | + | |
| - | # Shell Script | + | ### Arch Linux |
| + | |||
| + | ```bash | ||
| + | sudo pacman -S tinc | ||
| + | ``` | ||
| + | |||
| + | ### Slackware Linux | ||
| + | |||
| + | ```bash | ||
| + | wget https:// | ||
| + | tar xzvf tinc.tar.gz | ||
| + | cd tinc | ||
| + | source tinc.info | ||
| + | wget $DOWNLOAD | ||
| + | sudo ./ | ||
| + | sudo installpkg tinc-1.0.36-x86_64-1_SBo.tgz | ||
| + | ``` | ||
| + | |||
| + | ## Generate Keys | ||
| + | |||
| + | ```bash | ||
| + | tincd -n < | ||
| + | ``` | ||
| + | |||
| + | ## Config | ||
| + | |||
| + | Copy keys to `/ | ||
| + | |||
| + | |||
| + | ```bash | ||
| + | sudo mkdir -p / | ||
| + | cp rsa_key.* / | ||
| + | ``` | ||
| + | |||
| + | |||
| + | Create tinc-up and tinc-down scripts. | ||
| + | |||
| + | `/ | ||
| + | |||
| + | ``` | ||
| + | # | ||
| + | TUN="< | ||
| + | SUB="< | ||
| + | IP="< | ||
| + | |||
| + | ip link set $TUN up | ||
| + | ip addr add $IP dev tinc0 | ||
| + | ip route add $SUB dev tinc0 | ||
| + | ``` | ||
| + | |||
| + | `/ | ||
| + | |||
| + | ``` | ||
| + | # | ||
| + | TUN="< | ||
| + | SUB="< | ||
| + | IP="< | ||
| + | |||
| + | ip link set $TUN down | ||
| + | ip route del $SUB dev $TUN | ||
| + | ip addr del $IP dev $TUN | ||
| + | ``` | ||
| + | |||
| + | Create tinc configuration | ||
| + | |||
| + | `/ | ||
| + | |||
| + | ``` | ||
| + | Name = < | ||
| + | Device = / | ||
| + | AddressFamily = ipv4 | ||
| + | ConnectTo = < | ||
| + | Interface = < | ||
| + | Mode = router | ||
| + | Port = < | ||
| + | ``` | ||
| + | |||
| + | Add tinc peers | ||
| + | |||
| + | `/ | ||
| + | |||
| + | ``` | ||
| + | Subnet = < | ||
| + | Address = < | ||
| + | |||
| + | < | ||
| + | ``` | ||
| + | |||
| + | ## Startup | ||
| + | |||
| + | Start tincd | ||
| + | |||
| + | ```bash | ||
| + | VPN=$(ls / | ||
| + | for VPN in $VPNS; do | ||
| + | echo " | ||
| + | / | ||
| + | done | ||
| + | ``` | ||
| + | |||
| + | ## Shell Script | ||
| + | |||
| + | ```bash | ||
| + | #!/bin/sh | ||
| + | |||
| + | VPNS=$(ls / | ||
| + | |||
| + | start () { | ||
| + | for VPN in $VPNS; do | ||
| + | echo " | ||
| + | / | ||
| + | done | ||
| + | } | ||
| + | |||
| + | stop () { | ||
| + | for VPN in $VPNS; do | ||
| + | echo " | ||
| + | / | ||
| + | done | ||
| + | } | ||
| + | |||
| + | restart () { | ||
| + | stop | ||
| + | sleep 1 | ||
| + | start | ||
| + | } | ||
| + | |||
| + | case " | ||
| + | (" | ||
| + | start | ||
| + | ;; | ||
| + | (" | ||
| + | stop | ||
| + | ;; | ||
| + | (" | ||
| + | restart | ||
| + | ;; | ||
| + | (*) | ||
| + | echo " | ||
| + | exit 1 | ||
| + | esac | ||
| + | |||
| + | exit 0 | ||
| + | |||
| + | ``` | ||
| </ | </ | ||
| + | |||