web-dev-qa-db-ja.com

ラズベリーパイを使用して、LANデバイスをWLANに接続します

ノートパソコンからアクセスしたいオシロスコープがあります。スコープにはLAN接続しかなく、ラップトップはWi-Fiに接続されています。スコープをモバイルにしたいので、スコープをWi-Fiルーターに接続できません。ラップトップとスコープ間の直接LAN接続は可能ですが、ラップトップのモバイル性が低下するため、望ましくありません。

スコープはRigolDS1054Zで、ブラウザーインターフェイスとLXIインターフェイスを備えています(おそらく python-vxi11 を使用します)。次の設定は機能しますが(ラップトップで実行されているブラウザーにIPを入力すると、スコープの内部サーバーにアクセスできます)、スコープはモバイルではなく、ルーターに関連付けられています。

Router---(Wifi)---Laptop
     |---(LAN)----scope

そして、これは私がブラウザにスコープのIPを入力したときに私が得るものです: enter image description here

スコープをモバイルにするには、スコープをRaspberry Piに接続し、スコープ用のワイヤレスインターフェイスを用意します。ネットワークは次のようになります。

Router - (Wifi)---Laptop
              |--- [wlan0 RPi eth0] --- scope

私の全体的な目標を要約すると:

  • 通常のLANケーブルを使用してスコープをRaspberryPiに接続します
  • eth0インターフェイスとwlan0インターフェイスの間のブリッジとして機能するようにpiを構成します
  • 私のwifiルーター(DHCP)にスコープにIPアドレスを割り当てさせます(これはオプションの場合があります)
  • 私のラップトップからスコープに接続します

私が試したこと:piにbridge-utilsをインストールし、次の内容で/etc/network/interfaces.d/br0を追加しました。

auto br0
iface br0 inet dhcp
    pre-up ifup wlan0
    bridge_ports eth0 wlan0
    bridge_fd 5
    bridge_stp no

私が理解している限り(そしてネットワークの理解は非常に非常に基本的です)、これはwlan0とeth0をグロブアップし、魔法のようにスコープをネットワークに表示するはずです。

Piを再起動すると、br0が実際に稼働していることがわかります。

$ ifconfig
br0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:86:3c:ee  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:86:3c:ee  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<Host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2  bytes 78 (78.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 78 (78.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.178.46  netmask 255.255.255.0  broadcast 192.168.178.255
        ether b8:27:eb:d3:69:bb  txqueuelen 1000  (Ethernet)
        RX packets 70  bytes 9163 (8.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 57  bytes 9372 (9.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ルーターのデバイスリストにスコープが表示されません。まだ十分ではないと思います。そもそもブリッジアプローチは適していますか?

2
Christoph

私の答えを編集してもっと便利にしました。

ブリッジが機能するとは思わない(デバイスはブリッジインターフェイスの使用方法を知らない)。

しかし、いくつかのグーグル検索は以下につながりました(それらはすべて同じセットアップを示唆しているようです):

1:変更を元に戻すようにしてください。

2:dnsmaskをインストールします

Sudo apt-get install dnsmasq

3:wpa_supplicant.confを編集して、piのwifiが自動的に接続されることを確認します。

須藤ナノ/etc/wpa_supplicant/wpa_supplicant.conf

ネットワークに一致するようにssidとパスワードを置き換えます。

network={
    ssid="networkname"
    psk="networkpassword"
}

4:「ブリッジ」を構成します

Sudo nano /etc/dhcpcd.conf

正しいインターフェース名を使用していることを確認してください。ifconfigを呼び出すことでインターフェース名を見つけることができます。ルーターのネットワークが192.168.220.0ではないと仮定します。

注:ソースはeth0に言及し、wlan0で例を示しています

このファイル内に次の行を追加する必要があります。eth0をイーサネットの正しいインターフェイスに置き換えてください。

interface wlan0
static ip_address=192.168.220.1/24
static routers=192.168.220.0

5:再起動

Sudo service dhcpcd restart

6:有線接続がワイヤレスアダプターを介してルーティングされていることを確認します

Sudo nano --backup /etc/dnsmasq.conf

--backupは、元のファイル(dnsmasq.conf〜)のバックアップを作成することを保証します

interface=eth0       # Use interface eth0  
listen-address=192.168.220.1   # Specify the address to listen on  
bind-interfaces      # Bind to the interface
server=8.8.8.8       # Use Google DNS  
domain-needed        # Don't forward short names  
bogus-priv           # Drop the non-routed address spaces.  
dhcp-range=192.168.220.50,192.168.220.150,12h # IP range and lease time

7:トラフィックが転送されていることを確認します。

Sudo nano /etc/sysctl.conf

行のコメントを外す

#net.ipv4.ip_forward=1

取得するために

net.ipv4.ip_forward=1

再起動せずに変更を有効にします。

Sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

8:eth0トラフィックをwlan0に転送するファイアウォールルールを追加します

Sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE  
Sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT  

変更を永続的にします。

Sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

9 :(再)起動後にルールをロードします。

Sudo nano /etc/rc.local

exit 0の前に挿入

iptables-restore < /etc/iptables.ipv4.nat

10:dnsmasqを開始します:

Sudo service dnsmasq start

11:再起動

Sudo reboot

これらの手順は https://pimylifeup.com/raspberry-pi-wifi-bridge/amp/ からコピーされます

3
Kasper Agg

ブリッジの代わりにNATが必要です。Wifiステーションインターフェイスへのブリッジは機能しないと思います(Careyが言ったように)。

1.1。

Router - (Wifi)---Laptop
             |--- [wlan0 RPi eth0] --- scope

このように接続を設定した後、Piとスコープの間にNATネットワークを設定する必要があります。

NATネットワークをセットアップするには、スクリプトを導入させてください linux-router 。それは物事を作るように設計されています(dnsmasqiptables 、転送)人間にとっては簡単なので、手動で行う必要はありません(Aggの回答は、手動で行う方法をすでに提供しています)

Piで1つのコマンドを実行して、NATネットワーク:

# lnxrouter -i eth0

スクリプトは、Piとスコープの間にNAT network 192.168.18.0/24をセットアップするために必要なすべての処理を実行します。Piのeth0IPは192.168.18.1です。

スコープが自動的にブートストラップされた後、そのスクリプトの出力からスコープのIP 192.168.18.xを確認できます。

2.2。

ラップトップからスコープにアクセスするには、wifiルーターにログインし、ルーティングテーブルを編集する必要があります。

192.168.18.0/24ネットワークをPiのwlan0 IP経由でルーティングします(投稿する画像によると192.168.178.xである必要があります)。

(wifiルーターにログインできない、またはログインしたくない場合は、ラップトップのルーティングテーブルの設定も機能します。LinuxとMacでは、ユーザーはルーティングテーブルをカスタマイズできますが、Windowsについてはわかりません。)

3.3。

スコープの「WebインターフェイスとLXIインターフェイス」にアクセスするだけでよい場合は、Piでリバースプロキシを設定できるため、ルーティングテーブルを編集する必要はありません。

Web用のポート80と、スコープ上で開いているLXI用の別のポートが必要です。 Piで2つのポートを開いて、スコープ上のポートにトラフィックをリバースプロキシします。したがって、ラップトップはPiのwlan0IPとポートを入力してスコープにアクセスできます。

スコープがIPの手動設定(またはIPv6リンクローカルfe80::アドレス)をサポートしている場合は、PiでDHCPまたは転送を設定する必要はありません。

リバースプロキシは次のようなものです。

laptop-->--(Port A)Pi-->--(web)scope
laptop-->--(Port B)Pi-->--(LXI)scope
1
garywill

この解決策は友人によって提案され、それほど面倒なことなく機能しました。

概要概要

enter image description here

RaspberryPiのセットアップ

  • ラズビアンストレッチライト2018-11-13の新規ダウンロードから始めました
  • sshを有効にします(sshというファイルをブートパーティションに配置します)
  • wi-Fiをセットアップします(ブートパーティションに適切なwpa_supplicant.confを配置します)
  • /etc/dhcpcd.confでeth0の静的IPを設定します。

    interface eth0
    static ip_address=192.168.220.1/24
    static routers=192.168.178.1
    

    dhcpcdを再起動します:

    Sudo service dhcpcd restart
    
  • /etc/sysctl.confで、行のコメントを解除してIPv4転送を有効にします

    #net.ipv4.ip_forward=1
    

    取得するため

    net.ipv4.ip_forward=1
    

    適用:

    Sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
    
  • この手順の後で再起動しましたが、それが厳密に必要かどうかは100%わかりません。

オシロスコープのセットアップ

スコープは、新しいサブネットで静的IPを取得します。これは、マニュアルで説明されているように、スコープのユーティリティメニューで構成できます。

enter image description here

ルーターのセットアップ

これらの手順がどのように行われるかは、ルーターによって異なります。

  • ルーターのDHCPは、RPiのwlan0に常に同じアドレスを与えるように構成されています。この場合、192.168.178.46。別の方法として、静的IPをRPiのwlan0に割り当てます。
  • 192.168.220.0(RPiの255.255.255.0)を介して、192.168.178.46、サブネットマスクwlan0へのルートを追加します。

ラップトップのセットアップ

ネットワークがwifiルーターのwifiにある限り、ネットワークに関しては何もしません。

私は https://pypi.org/project/ds1054z/ を使用して次のことを行いました

スクリーンショット:

enter image description here

1
Christoph

私はあなたに完璧な答えを持っていませんが、私はあなたをそれに導くのを手伝うことができます...

いくつかの答えは、あなたがやりたいことが不可能であることを示唆しています。それは間違っています、それは非常に可能です。下部のリンクと同様の指示を使用する前に、これを実行しました。

つまり、ネットワークプロトコルを処理するための追加のツールが必要です。
parprouteddhcp-helperおよびavahi-daemon

私は現在これに取り組んでいるので、これら3つのツールの目的を理解したら、この回答を改善します。

編集:「RaspberryPi Wi-Fiインターネット共有」などを検索すると、より良い結果が得られることがわかりました(技術的には通常の意味でブリッジを作成していないため、「ブリッジ」という単語を完全に省略します)。

Edit2:追加のリンクと元のリンクをここの下に移動...

https://raspberrypi.stackexchange.com/questions/106149/wifi-to-ethernet-bridge

https://github.com/arpitjindal97/raspbian-recipes/blob/master/wifi-to-eth-bridge.sh

https://docs.slackware.com/howtos:network_services:wifi_to_eth_bridge_routing

https://raspberrypi.stackexchange.com/questions/88954/workaround-for-a-wifi-bridge-on-a-raspberry-pi-with-proxy-arp/88955#88955

0
JWAspin