ну, я понял:
rsync -av --files-from=/path/to/files.txt / /destination/path/
Вот мое решение для наводнения. Нет необходимости в iptables.Вот шаги:
ip netns add $NS # Wait for the TUN to come up while [[ $(ip route|grep $TUN|wc -l) == 0 ]]; do sleep 1; done MY_IP=$(ip addr show $TUN|grep inet|cut -d' ' -f6|cut -d'/' -f1) # The way you extract gateway IP might be different for your openvpn connection GATEWAY_IP=$MY_IP # jail my $TUN (VPN interface) into the namespace ip link set $TUN netns $NS # Bring the interface up with a subnet (equivalent to the one given to me by VPN server) ip netns exec $NS ifconfig $TUN $MY_IP/24 up # Bring loopback up ip netns exec $NS ifconfig lo 127.0.0.1/8 up # Set up remote gateway (your pointtopoint VPN IP address) ip netns exec $NS route add default gw $GATEWAY_IP
# Set up veth interfaces for communication between namespaces ip link add veth0 type veth peer name veth1 # Move the second veth to your namespace ip link set veth1 netns $NS # give an IP from unused IP range to first veth ifconfig veth0 10.1.1.1/24 up # And the second one ip netns exec $NS ifconfig veth1 10.1.1.2/24 up # TODO: set up a bridge between veth1 and eth interface to let it communicate with LAN # Set up DNS client. ip netns will emulate /etc/resolv.conf using this file: mkdir -p /etc/netns/$NS echo "nameserver 8.8.4.4" >/etc/netns/$NS/resolv.conf
Вуаля! Вы защищены VPN, а ваш deluge-web находится в свободном доступе в вашей домашней сети
Ответ @AndrDevEK полезен. Чтобы расширить это, вы можете не захотеть устанавливать socat
. В этом случае вы можете добиться того же с помощью слегка запутанной настройки переадресации SSH-порта -. В частности, здесь полезна функция переадресации порта -в/из доменного сокета unix -, поскольку доменные сокеты unix -работают независимо от сетевых пространств имен :
sudo ip netns exec myvpn su -c "ssh -N -L /tmp/myunixsock:localhost:8112 localhost" $USER &
ssh_pid1=$!
ssh -N -L localhost:8112:/tmp/myunixsock localhost &
ssh_pid2=$!
Очистка:
sudo kill $ssh_pid1
kill $ssh_pid2
rm /tmp/myunixsock
Первый ssh -N -L
запускается в пространстве имен myvpn. Это создает сокет домена unix -/tmp/myunixsock
и прослушивает его. Входящие подключения перенаправляются на localhost :8112 (внутри пространства имен myvpn ). Второй ssh -N -L
запускается в пространстве имен по умолчанию. Это создает TCP-порт прослушивания и перенаправляет входящие соединения на сокет домена unix -.
Следует отметить, что для того, чтобы это работало,ssh
внутри вашего сетевого пространства имен должно работать, если оно еще не работает (и полезна работа с открытым ключом без пароля):
sudo ip netns exec myvpn ip link set up dev lo
sudo ip netns exec myvpn /usr/sbin/sshd -o PidFile=/run/sshd-myvpn.pid
ssh-copy-id localhost