Ubuntu 16.04ヘッドレス
このガイドラインを使用するために、分割ルーティングが正常に取得されました。https://schnouki.net/posts/2014/12/12/openvpn-for-a-single-application-on-linux/ 目標はVPN経由でのみ送信し、他のすべてはeth0経由で送信することです。
netns内でトランスポートデーモンを実行しており、elinkを介してトランスポートWeb GUIに接続できますが、LANネットワークに接続してデスクトップコンピュータブラウザからアクセスすることはできません。
私の設定は次のとおりです
ip netns add nordvpn
ip netns exec nordvpn ip addr add 127.0.0.1/8 dev lo
ip netns exec nordvpn ip link set lo up
ip link add vpn0 type veth peer name vpn1
ip link set vpn0 up
ip link set vpn1 netns nordvpn up
ip addr add 10.200.200.1/24 dev vpn0
ip netns exec nordvpn ip addr add 10.200.200.2/24 dev vpn1
ip netns exec nordvpn ip route add default via 10.200.200.1 dev vpn1
iptables -A INPUT \! -i vpn0 -s 10.200.200.0/24 -j DROP
iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -o et+ -j MASQUERADE
sysctl -q net.ipv4.ip_forward=1
/lib/systemd/system/transmission-daemon.service
[Unit]
Description=Transmission BitTorrent Daemon
After=network.target
[Service]
User=root
Type=simple
ExecStart=/bin/sh -c 'exec /sbin/ip netns exec nordvpn /usr/bin/sudo -u debian-transmission /usr/bin/transmission-daemon -f --log-error --config-dir /var/lib/transmission-daemon/info'
ExecReload=/bin/kill -s HUP $MAINPID
[Install]
WantedBy=multi-user.target
/etc/transmission/settings.json
{
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "0.0.0.0",
"bind-address-ipv6": "::",
"blocklist-enabled": false,
"blocklist-url": "http://www.example.com/blocklist",
"cache-size-mb": 4,
"dht-enabled": true,
"download-dir": "/mnt/NFS/Movies",
"download-limit": 100,
"download-limit-enabled": 0,
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 0,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/mnt/NFS/Incomplete",
"incomplete-dir-enabled": true,
"lpd-enabled": false,
"max-peers-global": 200,
"message-level": 1,
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
"peer-limit-global": 200,
"peer-limit-per-torrent": 50,
"peer-port": 51413,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": true,
"port-forwarding-enabled": false,
"preallocation": 1,
"prefetch-enabled": 1,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": false,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": "{aaaaabbbbbcccccc",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "blades",
"rpc-whitelist": "127.0.0.1,10.200.200.*,192.168.2.3",
"rpc-whitelist-enabled": true,
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": true,
"seed-queue-enabled": false,
"seed-queue-size": 10,
"speed-limit-down": 100,
"speed-limit-down-enabled": false,
"speed-limit-up": 100,
"speed-limit-up-enabled": false,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 2,
"upload-limit": 100,
"upload-limit-enabled": 0,
"upload-slots-per-torrent": 14,
"utp-enabled": true
}
/etc/openvpn/se10.nordvpn.com.udp1194.ovpn
client
dev tun
proto udp
remote 91.236.116.83 1194
resolv-retry infinite
remote-random
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
ping 15
ping-restart 0
ping-timer-rem
reneg-sec 0
remote-cert-tls server
#mute 10000
auth-user-pass /etc/openvpn/login.conf
comp-lzo
verb 3
pull
fast-io
cipher AES-256-CBC
<ca>
-----BEGIN CERTIFICATE-----
bbbb
-----END CERTIFICATE-----
</ca>
key-direction 1
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
aaaaa
-----END OpenVPN Static key V1-----
</tls-auth>
カールipv4.icanhazip.comは私のパブリックIPアドレスを返します。
systemctl start transmission-daemon
ip netns exec nordvpn openvpn se10.nordvpn.com.udp1194.ovpn
ip netns pids nordvpn
2231
16252
16265
ps aux
root 16252 0.5 0.0 7672 1656 ? Ss 09:12 0:00 /usr/bin/sudo -u debian-transmission /usr/bin/transmission-daemon -f --log-error --config-dir /var/lib/transmission-daemon/info
debian-+ 16265 0.5 0.1 30700 3364 ? Sl 09:12 0:00 /usr/bin/transmission-daemon -f --log-error --config-dir /var/lib/transmission-daemon/info
root 2231 0.0 0.1 6156 2800 ? S May12 0:01 openvpn se10.nordvpn.com.udp1194.ovpn
netnsに接続して
ip netns exec nordvpn /bin/bash
curl ipv4.icanhazip.com
VPNアドレスを返す
私は何が間違っていましたか?
答え1
ほぼ同じ設定と問題があります。
私が知る限り、ネームスペースネットワーキングは外部から自分でアクセスできるようにしたくありません。マッピングiptables
を許可するいくつかの規則があるかもしれませんが、私は以下を使用しました。192.168.1.*:9091
10.200.200.2:9091
socat
10.200.200.*
実際のIPアドレスを介してネットワークにアクセスできるようにする解決策として、192.168.1.*
私の考え10.200.200.2
では、トランスポートデーモンrpcがnordvpn名前空間のIPアドレスにバインドされているようです。この情報を取得するにはを使用する必要がありますip netns exec nordvpn ifconfig vpn1
。価値を見つけてくださいinet addr
。
ip netns exec nordvpn transmission-remote --auth <username>:<password> -si
セッション情報の取得を使用して、rpcサービスが開始されたことを確認できます。
9091
次に socat を使用して仮想ネットワークのポートと物理ネットワークを接続します。
socat tcp-listen:9091,reuseaddr,fork tcp-connect:10.200.200.2:9091
また、以下を使用してスケジュールされたタスクとして実行して、貧しい人のデーモンに切り替えることもできます。at
echo 'socat tcp-listen:9091,reuseaddr,fork tcp-connect:10.200.200.2:9091 > /dev/null 2>&1' | at now
fork
パラメーターは複数のsocat
子プロセスを生成します。後で次を使用してこれを停止できます。pkill -f 'socat tcp-listen:9091'
その後、UbuntuボックスIPを使用してデスクトップからアクセスできる必要があります。
答え2
スポして申し訳ありませんが、関連検索語で表示されます。私は同じガイドに従い、同じ問題に直面しました。 Ketwarooの答えが私には合わなかったので、さらなる調査を行う必要がありました。
これが私が見つけたものです:
ソカートソリューション:
sudo socat tcp-listen:9091,fork,reuseaddr exec:'ip netns exec vpn socat STDIO "tcp-connect:10.200.200.2:9091"',nofork
このサイトの作成者に感謝します。https://newbedev.com/port-forwarding-to-application-in-network-namespace-with-vpn作業ソリューションとシステムサービスファイルsocatソリューションを維持したい場合
iptablesソリューション:
iptables -t nat -A PREROUTING -p tcp --dport 9091 -j DNAT --to-destination 10.200.200.2:9091
iptables -t nat -A POSTROUTING -p tcp --dport 9091 -j MASQUERADE
著者に感謝します。https://npre.wordpress.com/2012/09/15/port-forwarding-with-iptables/これに対する洞察力。
私はいつもネットワークネームスペースを通してiptablesエントリがあるべきだと思いましたが、私の考えは間違っていました。これら2つの項目が要件を満たしています。
これは、LANからネットワーク名前空間への一種のポートルーティングを試みる他の人に役立つことを願っています。