WAN ポート経由でインターネットにアクセスするように 4G モジュールを構成する
Linux ボードをスイッチまたはルーターとして構成し、ルーターと同様のインターネット アクセス機能を提供します。ここでは、4G ネットワーク カードがインターネットにアクセスするための WAN として使用されます。
1. ブリッジを使用してインターネットにアクセスする
1. 4G モジュールをデフォルト ゲートウェイとして設定する
まず、4G モジュールをデフォルトのルーティング ゲートウェイとして設定します。
ここでは、最初に 4G モジュールをルーティング モードで設定する必要があります。4G モジュール ルーティング モードとネットワーク カード モードの違いは、ダイヤルアップが成功した後、ルーティング モードで usb0 ネットワーク カードに割り当てられる IP アドレスは LAN IP (192.168.xx) であるのに対し、割り当てられる IP アドレスは LAN IP (192.168.xx) であることです。ネットワーク カード モードでは、パブリック ネットワーク IP アドレス (10.21.26.197) が使用されます。
ボードの有線および無線ネットワーク接続を切断し、ping baidu.com
テストに使用します。インターネットにアクセスできれば、4G モジュールのネットワーク構成は正常です。ip route
それ以外の場合は、 4G モジュールをデフォルト ゲートウェイとして設定し、4G モジュールがダイヤルアップしてインターネットに正常にアクセスできることを確認する必要があります。
2. ブリッジを作成する
参考: https://blog.csdn.net/duapple/article/details/127001192?spm=1001.2014.3001.5501
4G モジュールのネットワーク カードをusb0
他のネットワーク ポートにブリッジします。ここのボードには 2 つのイーサネット ポートがありますが、実験ではネットワーク ポートを 1 つだけ使用するため、テスト用のコンピュータに接続するためにブリッジされるのは 1 つだけです。
brctl addbr br0
brctl addif br0 usb0
brctl addif br0 eth0
ifconfig eth0 0.0.0.0
ifconfig usb0 0.0.0.0
ifconfig br0 up
次に、br0 の IP が 4G モジュールと同じネットワーク セグメントに存在するように設定する必要があります。最初のステップでは、オンラインになると usb0 に LAN IP が存在します192.168.43.100
。ここで、br0 の IP は次のように構成できます。
ifconfig br0 192.168.43.100/24
次に、br0 ネットワーク カードをデフォルト ルートとして設定します。
ip route add default via 192.168.43.1 dev br0
その後、4G モジュール ゲートウェイに ping できるようになり192.168.43.1
、さらに baidu.com にも ping できるようになります。
3. PCの設定
ここで、コンピュータはイーサネットを介して Linux ボードに接続されており、PC のイーサネットに適合したアドレスは br0 でネットワーク セグメントとして構成され、ゲートウェイ アドレスは 4G モジュールのゲートウェイ アドレスとして構成されます192.168.43.1
。DNS アドレスの設定114.114.114.114
。テストに影響を与えないように、ワイヤレス ネットワーク カードなど、インターネットにアクセスできる他のネットワーク アダプターを無効にするように注意してください。
現時点ではインターネットにアクセスできない可能性があります。まず Windows 上の Linux ボードの br0 ネットワーク カード アドレスに ping を実行し192.168.43.100
、接続が確立された後にゲートウェイ アドレスに ping を実行します192.168.43.1
。次に、baidu.com に再度 ping を送信します。その後、ネットワーク全体が接続されます。最初にネットワークに到達できない理由は、アドレス学習が始まったばかりであるため、ネットワークが不安定になり、baidu.com ネットワークへの ping の繰り返しが断続的になったり、パケット損失が発生したりする可能性があります。安定したら大丈夫ですよ。
4. まとめ
現時点では、ネットワーク ケーブルを使用して Linux ボードに接続し、IP を手動で設定している限り、Linux ボード上の 4G モジュールを使用してオンラインに接続できます。
2. NAT を使用してインターネットをサーフィンする
参考:https://codeantenna.com/a/4ZBrXkM9Zy
NAT を構成し、転送を完了するには、iptables を使用する必要があります。
1. iptables/netfilterの設定
NAT はユーザー空間のツールであるnetfilter
カーネル モジュールによって完成され、この 2 つを一緒に使用する必要があります。iptables
1.1 ネットフィルター
まずカーネルで設定しますnetfilter
。
と を<*> IPv4 connection tracking support (required for NAT)
表示するには、これをオンにする必要があることに注意してください。-*- IPv4 NAT
<*> iptables NAT support
構成が完了したら、カーネルを再コンパイルして書き込みます。
1.2 iptables
通常、このファイル システムは付属しています。そうでない場合は、クロスコンパイル ツールチェーンを使用して自分でコンパイルし、開発ボードに配置します。他のライブラリの導入を避けるためにlibmnl
、クロスコンパイル設定にパラメータを追加します--disable-nftables
。
アドレス転送を構成するには、まず転送を有効にします。
echo "1" > /proc/sys/net/ipv4/ip_forward
次に、次のように設定します。
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
ただ、エラーを報告しないでください。
2. 4Gモジュールの設定
4G モジュールがインターネットに正常にアクセスできることを確認する必要があります。
ここでは、4G モジュールをネットワーク カード モードとして設定します。4G モジュールを例に挙げるとquectel
、AT コマンドは ですAT+QCFG="NAT",1
。設定が完了したら、有効にするために再起動する必要があります。再起動し、ダイヤルアップが完了すると、4G モジュールにはパブリック ネットワーク IP と同様の IP アドレス (10 番目のセグメントの先頭のアドレス) が割り当てられます。
次に、usb0
4G モジュールのネットワーク カードをデフォルト ルートとして設定します。通常、上記のダイヤルアップが完了すると、システムは自動的にルーティング テーブルを構成します。
root@ATK-IMX6U:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.40.163.52 0.0.0.0 UG 0 0 0 usb0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 usb0
10.40.163.52 0.0.0.0 255.255.255.255 UH 0 0 0 usb0
183.230.126.224 10.40.163.52 255.255.255.255 UGH 0 0 0 usb0
183.230.126.225 10.40.163.52 255.255.255.255 UGH 0 0 0 usb0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
私のシステムは複数のルールで自動的に構成されています。
何も問題がなければping baidu.com
成功とみなされます。
root@ATK-IMX6U:~# ping baidu.com
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66: icmp_seq=1 ttl=48 time=59.1 ms
64 bytes from 110.242.68.66: icmp_seq=2 ttl=48 time=57.4 ms
64 bytes from 110.242.68.66: icmp_seq=3 ttl=48 time=55.5 ms
64 bytes from 110.242.68.66: icmp_seq=4 ttl=48 time=67.4 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 55.571/59.903/67.421/4.522 ms
ping が baidu と異なる場合は、/etc/resolv.conf
次の内容を変更して追加します。
nameserver 114.114.114.114
nameserver 127.0.0.1
そうすればpingは問題ないはずです。
3. ネットワーク構成
4G モジュールのネットワーク構成に加えて、クライアントとクライアントに接続されるネットワーク ポートの構成も必要です。
3.1 Linux ネットワークポートの設定
Linux ボードをクライアントに接続するネットワーク ポート (eth0) は、ゲートウェイ アドレスを使用して構成する必要があります192.168.10.1
。そうしないと、クライアントはインターネットにアクセスできません。
3.2 クライアントのネットワーク構成
ここではクライアントは PC Windows を使用します。クライアント コンピュータと Linux ボードに接続されている IP は、同じネットワーク セグメントに設定する必要があります。たとえば192.168.10.200
、ゲートウェイ アドレスは に設定する必要があります192.168.10.1
。現時点では、インターネットはすでに利用可能であり、qq ネットワークが利用可能です。
しかし、ping baidu は失敗し、ブラウザから baidu へのアクセスも失敗します。ここでは、DNS アドレスを に設定します114.114.114.114
。その後、baidu に再度 ping を実行したところ、すでに利用可能であることがわかり、ブラウザーのアクセスには問題ありませんでした。
C:\Users\28328>ping baidu.com
正在 Ping baidu.com [110.242.68.66] 具有 32 字节的数据:
来自 110.242.68.66 的回复: 字节=32 时间=58ms TTL=47
来自 110.242.68.66 的回复: 字节=32 时间=79ms TTL=47
来自 110.242.68.66 的回复: 字节=32 时间=73ms TTL=47
来自 110.242.68.66 的回复: 字节=32 时间=55ms TTL=47
110.242.68.66 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 55ms,最长 = 79ms,平均 = 66ms
注: 同様に、テストへの影響を防ぐために、テスト中に外部ネットワークにアクセスできる他のネットワーク カードを無効にする必要があります。