mirror of
https://github.com/luzifer-aur/he-tunnel.git
synced 2024-12-20 17:41:17 +00:00
Initial version
This commit is contained in:
commit
77b1d27c7f
5 changed files with 91 additions and 0 deletions
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
*
|
||||||
|
!config.default
|
||||||
|
!.gitignore
|
||||||
|
!he-tunnel
|
||||||
|
!he-tunnel.service
|
||||||
|
!PKGBUILD
|
24
PKGBUILD
Normal file
24
PKGBUILD
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
pkgname=he-tunnel
|
||||||
|
pkgver=0.1.0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Tunnel setup script and service"
|
||||||
|
arch=(any)
|
||||||
|
backup=('etc/default/he-tunnel')
|
||||||
|
license=('MIT')
|
||||||
|
depends=('curl' 'iproute2')
|
||||||
|
source=(
|
||||||
|
config.default
|
||||||
|
he-tunnel
|
||||||
|
he-tunnel.service
|
||||||
|
)
|
||||||
|
sha512sums=(
|
||||||
|
'49b4970ca50bd6858111edaa756f31b860e02cbbe336691b28f69dd0cdd74b818d43c4a16a3c272834c4f056bcbb65eb78bfbc3bdac236684f1311918a8114f6'
|
||||||
|
'78e3c2fbedba6b106eb682d0e493a7169787fba4c4b03f3d9e6fe32d14e25348cc5bb6c3cf95da7f551802b25f819c524daeea9e9f696fe3256d9b38585c75b8'
|
||||||
|
'11073404bc2f62ea0f104e03858777793079edad657571c9ab8893a50acfbbe64648d126d8625592cef464f25b9304bd04e2d381f630e320a01cccd61b3c039b'
|
||||||
|
)
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm 0600 config.default "${pkgdir}/etc/default/he-tunnel"
|
||||||
|
install -Dm 0644 he-tunnel.service "${pkgdir}/etc/systemd/system/he-tunnel.service"
|
||||||
|
install -Dm 0755 he-tunnel "${pkgdir}/usr/bin/he-tunnel"
|
||||||
|
}
|
7
config.default
Normal file
7
config.default
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
UPDATE_KEY=""
|
||||||
|
UPDATE_USER=""
|
||||||
|
|
||||||
|
TUNNEL_CLIENT_ADDR=""
|
||||||
|
TUNNEL_ID=""
|
||||||
|
TUNNEL_LOCAL=""
|
||||||
|
TUNNEL_REMOTE=""
|
42
he-tunnel
Executable file
42
he-tunnel
Executable file
|
@ -0,0 +1,42 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
DEFAULT_CFG=/etc/default/he-tunnel
|
||||||
|
|
||||||
|
function log() {
|
||||||
|
echo "$@" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
[[ -f $DEFAULT_CFG ]] || {
|
||||||
|
echo "Missing default config: ${DEFAULT_CFG}"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
source ${DEFAULT_CFG}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
start)
|
||||||
|
log "Configuring tunnel interface..."
|
||||||
|
/usr/bin/ip tunnel add he-ipv6 mode sit remote ${TUNNEL_REMOTE} local ${TUNNEL_LOCAL} ttl 255
|
||||||
|
/usr/bin/ip link set he-ipv6 up mtu 1480
|
||||||
|
/usr/bin/ip addr add ${TUNNEL_CLIENT_ADDR} dev he-ipv6
|
||||||
|
/usr/bin/ip -6 route add ::/0 dev he-ipv6
|
||||||
|
log "Tunnel interface configured."
|
||||||
|
;;
|
||||||
|
|
||||||
|
stop)
|
||||||
|
log "Removing tunnel interface configuration..."
|
||||||
|
/usr/bin/ip -6 route del ::/0 dev he-ipv6
|
||||||
|
/usr/bin/ip link set he-ipv6 down
|
||||||
|
/usr/bin/ip tunnel del he-ipv6
|
||||||
|
log "Tunnel interface removed."
|
||||||
|
;;
|
||||||
|
|
||||||
|
update-ip)
|
||||||
|
log "Updating remote IP with tunnel broker..."
|
||||||
|
curl -4 -sSf \
|
||||||
|
-o /dev/null \
|
||||||
|
"https://${UPDATE_USER}:${UPDATE_KEY}@ipv4.tunnelbroker.net/nic/update?hostname=${TUNNEL_ID}"
|
||||||
|
log "IP updated."
|
||||||
|
;;
|
||||||
|
esac
|
12
he-tunnel.service
Normal file
12
he-tunnel.service
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
[Unit]
|
||||||
|
Description=he.net IPv6 tunnel
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
RemainAfterExit=yes
|
||||||
|
ExecStart=/usr/bin/he-tunnel start
|
||||||
|
ExecStop=/usr/bin/he-tunnel stop
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in a new issue