From ec55c5cf3dd3bacc11375d3fe1aed471c7b8cbe8 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 3 Apr 2023 22:08:47 +0200 Subject: [PATCH] TUN interface --- Dockerfile | 1 + network.sh | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 915c727..9da6335 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,6 +12,7 @@ RUN apt-get update && apt-get -y upgrade && \ jq \ curl \ cpio \ + kmod \ wget \ unzip \ procps \ diff --git a/network.sh b/network.sh index c86da26..b9c195c 100644 --- a/network.sh +++ b/network.sh @@ -1,16 +1,6 @@ #!/usr/bin/env bash set -eu -if [ ! -e /dev/net/tun ]; then - - mkdir -p /dev/net - mknod /dev/net/tun c 10 200 - chmod 600 /dev/net/tun - -fi - -[ ! -e /dev/net/tun ] && echo "Error: TUN network interface not available..." && exit 85 - : ${INFO:='N'} : ${DEBUG:='N'} @@ -100,6 +90,22 @@ configureNatNetworks () { MAJOR="" _DhcpIP="" +# Create the necessary file structure for /dev/net/tun +if ( [ ! -c /dev/net/tun ] ); then + if ( [ ! -d /dev/net ] ); then + mkdir -m 755 /dev/net + fi + mknod /dev/net/tun c 10 200 + chmod 0755 /dev/net/tun +fi + +# Load the tun module if not already loaded +if ( !(lsmod | grep -q "^tun\s") ); then + [ -f /lib/modules/tun.ko ] && insmod /lib/modules/tun.ko +fi + +[ ! -c /dev/net/tun ] && echo "Error: TUN network interface not available..." && exit 85 + #log "INFO" "Little dirty trick ..." update-alternatives --set iptables /usr/sbin/iptables-legacy > /dev/null update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy > /dev/null