私は自分のデバイスを物理的に隣に置いて作業速度を上げるためにいくつかの設定を試しています。そのため、家の中で寒い場所にあるルーターの隣に座ってFTP経由でファイルを送信したり、SSHを実行する必要はありません。ヘッドレスサーバー共通機能。私の最初の解決策は、私が見つけたPCIイーサネットカードを使用して、そのカードをコンピュータAに接続し、コンピュータを物理的に一緒に接続してから従うことでした。この記事マシンBがマシンAを介してネットワークにアクセスできるようにします。
結論として:
マシンAは2つのイーサネットポートを持つデスクトップで、IPアドレスはネットワーク上にあります。192.168.1.9
マシンBは1つのイーサネットポート、私のターゲット、IPアドレスを持つラップトップです。192.168.2.193
BがA経由でインターネットにアクセスできるようにdnsmasqを正しく設定するための指示に従いました。これまでBにSSHで接続できる唯一の方法は、AのIPを介してトンネルを確立し、「内部」ポート22アドレスを転送することです。192.168.2.193
マシンBは外部ネットワークにアクセスでき、インターネットは正常に動作します。
私のSSHコマンド:
ssh -L 8080:192.168.2.193:22 [email protected] -N
追加情報が必要な場合は、この問題を解決するために必要な追加情報を提供できます。
編集する
マシンAの提案された入力でiptablesが更新されました。
Chain INPUT (policy ACCEPT)
target prot opt source destination
val_input tcp -- anywhere anywhere
ACCEPT udp -- 192.168.2.0/24 anywhere multiport dports bootps,bootpc /* dhcp */
ACCEPT tcp -- 192.168.2.0/24 anywhere tcp dpt:domain /* dns-tcp */
ACCEPT udp -- 192.168.2.0/24 anywhere udp dpt:domain /* dns-udp */
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain val_input (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere state NEW,RELATED,ESTABLISHED
RETURN all -- anywhere anywhere state NEW,RELATED,ESTABLISHED
RETURN all -- anywhere anywhere state NEW,RELATED,ESTABLISHED
DROP all -- anywhere anywhere
Chain bal_output (0 references)
target prot opt source destination
編集2ip a
マシンAの出力
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:08:54:3d:e8:fd brd ff:ff:ff:ff:ff:ff
inet 192.168.2.1/24 brd 192.168.2.255 scope global enp1s5
valid_lft forever preferred_lft forever
inet 192.168.2.1/32 scope global enp1s5
valid_lft forever preferred_lft forever
inet6 fe80::208:54ff:fe3d:e8fd/64 scope link
valid_lft forever preferred_lft forever
3: enp1s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:1e:90:78:9a:97 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.9/24 brd 192.168.1.255 scope global enp1s8
valid_lft forever preferred_lft forever
inet6 fe80::21e:90ff:fe78:9a97/64 scope link
valid_lft forever preferred_lft forever
編集3ifconfig
マシンBの出力
[jaz@Jaz-Jackson ~]$ ifconfig
........
ens5f5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.193 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fe80::1a0f:d7d2:b678:665f prefixlen 64 scopeid 0x20<link>
ether 20:cf:30:71:b2:7e txqueuelen 1000 (Ethernet)
RX packets 379032 bytes 142855672 (136.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 510236 bytes 65400716 (62.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 32
......
答え1
マシンAをルーターに変えることについて話しています。 DNSMasqは、ルータがIPアドレスをDHCPクライアントに展開してネームサーバーを提供できるようにするための便利なコンポーネントです。しかし、これだけでは十分ではありません。
カーネルでパケット転送を有効にする必要があります。
sysctl net.ipv4.ip_forward=1
sudo などの root 権限で実行します。たとえば、「routing.conf」というファイルなど、net.ipv4.ip_forward=1
下の場所に配置して永久に作成します。/etc/sysctl.d/
を実行して現在の値を確認できますsysctl net.ipv4.ip_forward
。迷彩とも呼ばれるNAT(Network Address Translation)が必要です。 iptablesを使用する場合は、上部に次のセクションが必要です(発信インターフェイス用
enps1s8
)。*nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -o enp1s8 -j MASQUERADE COMMIT
カーネルで転送を有効にしてNATを設定することに加えて、ファイアウォールにパケット転送要求を受け入れるように指示する必要があるため、iptablesには次の規則がいくつかあります。
# Forward between client LAN and external WAN -A FORWARD -i enp1s5 -o enp1s8 -j ACCEPT -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -i enp1s8 -o enp1s5 -j ACCEPT
最後に、パケットのルーティング方法に関するルールを開発する必要があります。ファイアウォールの問題ではありませんが、iproute2を使用します。これをスクリプトに入れると便利です。
$ cat /usr/local/sbin/add-lan-route #! /usr/bin/ip -b addr add 192.168.2.1 dev enp1s5 route add 192.168.2.1/24 via 192.168.2.1 dev enp1s5
マシンB(ノートブック)もマシンA(デスクトップ)のdnsmasqと通信したいと思います。したがって、必要なポートを開くには、より多くのiptablesルールが必要です。仕事を体系的に維持するには、このための「チェーン」を設定することをお勧めしますが、iptablesに自分がいない場合は、必要なものを得るための最も直接的な方法は次のとおりです。
-A INPUT -p udp -s 192.168.2.0/24 -m multiport --dports 67,68 -m comment --comment "dhcp" -j ACCEPT -A INPUT -p tcp -s 192.168.2.0/24 --dport 53 -m comment --comment "dns-tcp" -j ACCEPT -A INPUT -p udp -s 192.168.2.0/24 --dport 53 -m comment --comment "dns-udp" -j ACCEPT
最後に、マシンBのdhcpクライアントがマシンAのdnsmasqによって配布できる正しいIPアドレスを取得したいと思います。デフォルトの dnsmasq 構成は次のとおりです。
interface=enp1s5 dhcp-range=192.168.2.2,192.168.2.254,255.255.255.0,1h dhcp-host=20:cf:30:71:b2:7e,192.168.2.193,1h cache-size=2048
キャッシュサイズは重要ではなく、変更または削除できる提案です。残りはenp1s5に接続されているすべてのエントリがIPアドレスを要求することを許可し、マシンBのMACの場合はデフォルトのIPアドレスを取得します。考慮すべき説明が多いので、デフォルトのdnsmasq構成も確認する必要があります。
これらの手順をすべて完了したら、マシンAがルータとして機能し、マシンBにネームサービスとIPアドレスを付与し、enp1s8を介してインターネット接続をNATできるようにする必要があります。