web-dev-qa-db-ja.com

ワイヤレスインターネット接続(単一アダプター)を共有するWiFiホットスポットを作成するにはどうすればよいですか?

有線ネットワークに接続したときにホットスポットを作成する方法は知っていますが、WiFi接続からインターネットを使用している場合、ホットスポットをアクティブにするとすぐにワイヤレス接続が切断されます。

Windowsでは、 Connectify Hotspot を使用できます。これにより、アクセスポイントを作成しているのと同じワイヤレスアダプターからインターネット接続を共有できます。 技術概要ページ で読むことができます:

アクセスポイントモードでは、インターネットへのアクセスに使用しているのと同じWi-Fiカードを使用してホットスポットを作成できます。

Ubuntuでこれを行うにはどうすればよいですか?

105
Ruppesh Nalwaya

簡単な手順:ubuntuでWi-Fiホットスポットを作成する

  1. Wifiを無効にする(Wi-Fiを有効にするのチェックを外します)
  2. ネットワーク接続に移動(接続の編集...)
  3. 「追加」をクリックします
  4. 「Wi-Fi」を選択し、「作成」をクリックします
  5. 「wifi-hotspot」などの接続名を入力します
  6. 希望どおりにSSIDを入力します
  7. ドロップダウンからデバイスMACアドレスを選択します(wlan0)
  8. Wifiセキュリティは「WPA&WPA2 Personal」を選択し、パスワードを設定します。
  9. [IPv4設定]タブに移動し、[方法]ドロップダウンボックスから[他のコンピューターと共有]を選択します。
  10. 次に保存して閉じます。
  11. ターミナルを開き(Ctrl + Alt + T)、手順5で使用した接続名で次のコマンドを入力します。

    Sudo gedit /etc/NetworkManager/system-connections/wifi-hotspot
    
  12. mode=infrastructureを見つけてmode=apに変更します

  13. Wi-Fiが作成されたホットスポットに自動的に接続されるネットワークセクションを確認します。見つからない場合は、隠しネットワークに接続...に進み、接続を見つけて接続します。

ソース: http://ubuntuhandbook.org/index.php/2014/09/3-ways-create-wifi-hotspot-ubuntu/

68
Purushoth

このリンクvasishath が提供するものを見た後、同じホットスポットをセットアップして、同じ単一のワイヤレスインターフェイスデバイスからインターネット接続を共有することができました。この無線デバイスは、Atherosドライバーを使用する必要がありますnl80211 サポート。次に、その方法を説明します。

ワイヤレスデバイスがこの方法で動作するかどうかを検出する

terminal で次のコマンドを実行します。

lsmod | grep ath

出力がヌルの場合、または文字列cfg80211が出力にない場合、続行する意味がなく、 この回答 の2番目と3番目の点に注意する必要があります。

必要なツール

下記のすべてのパッケージがインストールされているかどうかを確認します: iwhostapdiptablesdhcpddhcpcmacchanger

あなたはこれらをインストールすることができます

Sudo apt-get install iw hostapd iptables udhcpd udhcpc macchanger

いくつかのファイルを編集する

ターミナルで次のコマンドを実行して、対応するファイルを編集します。

Sudo -H gedit /etc/hostapd.conf /etc/udhcpd.conf /etc/default/udhcpd /etc/wpa_supplicant.conf
  • hostapd.confファイルに次のコードを追加します。

    interface=new1
    driver=nl80211
    ssid=my_wifi_hotspot      #Change the ssid name as you wish
    channel=11                #I sugest you to use the same channel as your wireless network
    hw_mode=g
    wme_enabled=1
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=3
    wpa_passphrase=1234567890 #Change the passphrase as you wish
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    
  • udhcpd.confファイルで、現在の行をすべてコメント化し(行の前に#文字を追加する)、次の新しい行を追加します。

    start 192.168.0.102         #These IPs must to be in the same subset as your current default route
    end 192.168.0.117 
    interface new1 
    
    opt dns 192.168.0.1         #Your current default route (Gateway)
    option subnet 255.255.255.0
    opt router 192.168.0.101    #This IP must to be in the same subset as your current default route
    option  domain  localhost
    
  • / etc/default/udhcpで、DHCPD_ENABLED="no"という行をコメント化します。

  • wpa_supplicant.confで、現在のワイヤレスネットワークの設定を指定する必要があります。いくつかの簡単な例については、man wpa_supplicantを参照してください。そして、おそらくあなたは/usr/share/doc/wpa_supplicant/ディレクトリにもっと例があるでしょう。私は次のようなものを使用しました:

    ctrl_interface=/var/run/wpa_supplicant
    network={
      ssid="my_wifi_network"
      key_mgmt=WPA-PSK
      proto=WPA
      pairwise=CCMP
      group=CCMP
      psk="mypassphrase"
    }
    
  • すべてのファイルを保存して閉じます。

注:これらの編集はすべて、現在のネットワーク構成には影響しません。

シェルスクリプトを作成する

  • ターミナルでmkdir -p binを実行します-このコマンドは、binフォルダーにhomeディレクトリーを作成します(まだない場合)。
  • gedit ~/bin/hotspotsetup.shを実行すると、geditに新しいファイルhotspotsetup.shが作成されます。
  • 次のスクリプトをコピーして、新しく作成したファイルに貼り付けます。
#!/bin/bash

service network-manager stop
sleep 1

pkill -15 nm-applet
sleep 1

ifconfig wlan0 down             #wlan0 - the name of your wireless adapter
sleep 1

iw phy phy0 interface add new0 type station
iw phy phy0 interface add new1 type __ap
sleep 2

ifconfig new0 down
macchanger --mac 00:11:22:33:44:55 new0
ifconfig new1 down
macchanger --mac 00:11:22:33:44:66 new1
ifconfig new0 up
ifconfig new1 up

ifconfig new1 192.168.0.101 up  #192.168.0.101 - the same IP defined for router in 'udhcpd.conf' file 
hostapd /etc/hostapd.conf &
sleep 2

service udhcpd start

wpa_supplicant -inew0 -c/etc/wpa_supplicant.conf &
sleep 10

udhcpc -i new0

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface new0 -j MASQUERADE
iptables --append FORWARD --in-interface new1 -j ACCEPT
  • ファイルを保存して閉じます。
  • ターミナルに戻って実行します:chmod +x ~/bin/hotspotsetup.sh-スクリプトの実行アクセスを許可します。

同じワイヤレスアダプタからワイヤレスネットワークに接続されているワイヤレスホットスポットを開始します

Root権限でターミナルで上記のスクリプトを実行します。

Sudo ~/bin/hotspotsetup.sh

証明

hotspotsetup.sh

注:hotspotsetup.shスクリプトを実行する前と同じようにネットワークマネージャーサービスを再開するには、コンピューターを再起動します(Sudo reboot)。

出典:単一のワイヤレスインターフェースでLinuxに接続 .

45
Radu Rădeanu

すべてを簡素化する優れたツールを紹介しましょう:create_ap(byoblique
これが公式リポジトリです。 https://github.com/oblique/create_ap
このツールはArch Linuxリポジトリの一部であり、Ubuntuリポジトリにもあるはずです!
非常に使いやすく、非常に効果的です。
Ubuntuにインストールするには、最初に依存関係をインストールする必要があります。

Sudo apt install bash util-linux procps hostapd iproute2 iw wireless-tools haveged iptables dnsmasq git

「ミニインストールイメージ」を使用していない限り、すでに90%があります...
完了したら、斜めからリポジトリをクローンします。

git clone https://github.com/oblique/create_ap.git

ダウンロードしたリポジトリで端末を見つけます。

cd create_ap

次を使用してツールをインストールします。

Sudo make install

makeを使用したコンパイルは不要です)
簡単ですね。残りはさらに簡単です... ...デバイスをクライアントとPAとして同時に使用できる場合(atheros wifiチップ-編集:一部のIntelチップも、 2番目のコメントbellow)を参照してください。通常どおり、ネットワークマネージャーを使用してホームルーターに接続するだけで、次のようなコマンドラインを実行できます。

Sudo create_ap <connected interface> <repeater interface> <essid repeated network> <WPA Key>

Sudo create_ap wlp2s0 wlp2s0 Bathroom_WiFi mysecuresecretkey

以上です! create_ap 信じられないほど簡単!これで、Androidデバイスで繰り返しネットワークに接続するだけです。ラップトップ端末で、ラップトップとクライアントの間でネゴシエートされたハンドシェイクが表示されます。 enter image description here そして、あなたはインターネットで素敵なバスルームセッションを楽しむことができます...すべてが単一のインターフェースと1つの簡単なコマンドで行われます。このツールには多くのオプションがあります。詳細については、斜めのgithubリポジトリを参照してください(前述のリンク)。スペイン語を話せる場合は、このフォーラムスレッドを確認できます。 create_ap:Lasoluciónperfecta para transformar tu ordenador en un repetidorユニバーサルtodo terreno

13
kcdtv

この回答へのコメントでわかるように、ISこれを行う方法です。 FreeBSD(Ubuntu/Linuxではない)向けに文書化されています: https://serverfault.com/questions/192144/connect-to-multiple-ap-with-one-wifi-adapter-under-linux- freebsd (コメントからのリンク)。 Linuxではまったく同じように動作しないようですが、似ているはずです。残念ながら、このトピックに関する詳細な情報を見つけることができませんでした。

おそらく最も簡単で最も一般的な方法は、2つの物理ネットワークインターフェイスを使用することです。そのため、別のwifiスティックを購入するか、別のテクノロジーを使用してさらに接続し、Wifiを介してそのうちの1つだけを実行することができます。たとえば、次のような可能性があります。

  • Bluetooth + Wifi
  • LAN /イーサネット+ Wifi
  • 3G/LTE + Wifi
  • Wifi(外部)+ Wifi(組み込みまたは2番目の外部)

Ubuntu Linuxは、複雑になることなく、2台のwifiデバイスを一度に管理できることに気付きました。私はインターネット接続などを共有する方法でこれをテストしませんでしたが、それは可能であるはずです。どの程度複雑になるかは、おそらく使用する接続のタイプに依存します。 Linuxでは、おそらく特別なソフトウェアは必要ありません。特別なツールを必要とせずに接続を共有することができるはずです。残念ながら、現時点では試せません。

とにかく別のWifiスティックがあれば、WifiからWifiを試すことをお勧めします。そうでなければ、LANまたはBluetooth(ほとんどのノートブックに組み込まれています)プロバイダーのデータプランなどのため、3G/LTE共有は少し悪いです。

5
verpfeilt

これは別の回答として追加されました。他の回答が多くの論争を引き起こしたためです。

何よりもまず、ワイヤレスアダプタの名前を知る必要があります。以下のコマンドを使用して取得します。

iwconfig

ほとんどの場合、wlan0またはwlan1です。

古いWiFiアダプターを使用していて、使用するドライバーを知りたい場合があります。 USBまたはPCIのタイプに応じて、以下のコマンドを使用できます。

lsusb
lspci

以下のコマンドを使用して、現在使用しているドライバーを確認します。

lsmod

プログラムをインストールする必要があります。押すだけ Ctrl+Alt+T キーボードでターミナルを開きます。開いたら、以下のコマンドを実行します:

Sudo apt-get install hostapd

次のコマンドでメインネットワークアダプター構成ファイルを開きます。

Sudo gedit /etc/hostapd/hostapd.conf

そして、次のように編集します:

interface=wlan0
driver=nl80211
country_code=US
ssid=mySSID
hw_mode=g
channel=1
wpa=2
wpa_passphrase=MyWiFiPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0

最初の行は、ネットワークアダプタ名です。運が悪く、サードパーティのドライバーが必要でない限り、ほとんどの場合、2行目は変更しないでください。 3行目では説明は不要です。 4行目は、WiFiアクセスポイント名(SSID)です。 5行目は、ネットワークをa/b/g/nモードとして識別します。次の行はネットワークチャネルです。残りの行は、セキュリティと暗号化を設定します。ほとんどの場合、パスフレーズの変更のみが必要です。

次のコマンドで2番目の構成ファイルを開きます。

Sudo gedit /etc/default/hostapd

そして、このように変更します:

DAEMON_CONF="/etc/hostapd/hostapd.conf"
RUN_DAEMON="yes"
DAEMON_OPTS="-dd"

最初の行は、メインネットワークアダプターの構成ファイルを指します。 2行目は、hostapdが起動時にバックグラウンドでDAEMONモードで実行するように指示します。最後の行は、hostapdにすべてのメッセージを記録するように指示します。ここでの重要なトリックは、2つの異なるワイヤレスネットワークアダプターを使用してデュアルバンドアクセスポイントをセットアップする場合、各ardの元の構成ファイル(1番目のファイル)を作成し、次のように変更することです。

DAEMON_CONF="/etc/hostapd/hostapd.conf /etc/hostapd/hostapd2.conf"

設定が完了しました。

DAEMONの実行

ここで、hostapd DAEMONが起動時に起動することを確認する必要があります(以下の最初のコマンド)。これを実行して、必須の再起動を回避する必要があります。

Sudo update-rc.d hostapd defaults
Sudo /etc/init.d/hostapd start

そして完成です。これで、新しく構築したアクセスポイントに接続できます。

ソース: Hostapd:仮想Wifiアクセスポイントを作成するLinuxの方法Hostapd Linuxドキュメントページ

4
Mitch

現在のところ、Atherosカードとごく少数のBroadcomカードでのみ可能です。使用しているものを知るには、ターミナルで次のコマンドを実行し、出力をここに貼り付けてください:

lspci | Wireless

または、その方法を簡単に試すことができます。これを行う方法に関するチュートリアルのリンクは次のとおりです。 connectify-for-linux-with-single-wireless-interface

1
vasishath

CONNECTIFY EXPERIENCEを作成するために見つけた最良の方法は、AP-HOTSPOTを使用することです!
(WPA2..ubuntuでLinuxがデフォルトで行うようにwepではありません)

Sudo add-apt-repository ppa:nilarimogard/webupd8

Sudo apt-get update

Sudo apt-get install ap-hotspot

実行とオプション

開始:Sudo ap-hotspot start

停止:Sudo ap-hotspot stop

構成:Sudo ap-hotspot Configure

グラフィカルユーザーインターフェイス が必要ですか?

それをインストールするには、ターミナルを開き、次のコマンドでブラウズします。

cd /home/USERNAME/LOCATION

次に、インストールコマンドを実行します。

qmake

make

プログラムを作成します...デスクトップにドラッグして完了:)歓声

2つのアダプターに関する限り... Windowsと無料のbsdで実現できます...昨日現在、このシナリオに自分自身でアプローチしただけなので、今のところまだ理解しようとしています!報告します... Linuxでも同様にできます。他のオペレーティングシステムで実行できるアダプタのハードウェア制限ではありません...

1
user251335

Purushoth's answerのように、この回答には2つのWiFiアダプターも必要です(例:1つの内部USB Wi-Fiアダプターと1つの外部USB Wi-Fiアダプター)。しかし、私は彼の答えを私のために働かせることができなかったので、代わりに私がしたことはここにあります。

Xubuntu 14.04でテスト済み。

Ubuntu/Xubuntu PCをWiFiホットスポットとして設定する方法(例:PCからの単一の有料接続を携帯電話や他のデバイスと共有するために空港や飛行機で使用する場合) :

  1. USB WiFiドングルを差し込みます。すべてのドングルが「ap」(アクセスポイント)として機能できるわけではありませんが、内部カードが確実に機能するため、(少なくとも、現時点では、アクセスポイントとして機能できるUSB wifiアダプターが見つかるまで)有料サービス(例:機内WiFi)に接続するための外部USB 1つ。内部WiFiアダプターを使用して、WiFiアクセスポイントを作成します。
    • 重要:誤った(外部)WIFIアダプターを使用して有料サービスに支払い、接続しないでください。ORそれ以外の場合は、有料接続ISがリンクしているため、再度支払う必要がありますあなたのWIFIアダプター—おそらくVIAその永続的なMACアドレスOR何か。
  2. パネルのwifiアイコンを左クリックし、「Create New WiFi Network ...」を選択→内部Wi-Fiアダプター(wlan0)を選択し、ネットワーク名(SSID)を作成(例:「wifi-hotspot」) 、[Wi-Fiセキュリティ]で[WPA&WPA2 Personal]を選択し、パスワードを作成して、[作成]をクリックします。
    • 注意:外部USB WIFIアダプターをプラグインしているときに、このステップで内部WIFIアダプターを選択できないバグがあります。この問題が発生した場合は、この手順を実行してWIFI HOTSPOTを作成しているときに外部WIFIアダプターのプラグを簡単に取り外し、完了したら/以下の指示があったときに再度差し込みます。
  3. 作成したばかりの新しいwifiホットスポットの構成ファイルを編集します。
    • cd /etc/NetworkManager/system-connections
    • ls
    • 上記のGUIステップで作成したホットスポットファイルを見つけます。例:「wifi-hotspot」、および編集:
    • Sudo nano wifi-hotspot
    • 下矢印を押して、「mode = adhoc」または「mode = ap」と表示されているものを変更します。保存して終了。
  4. これで、外部USB WiFiアダプターがまだ接続されていない状態で、パネルのWiFiアイコンをもう一度左クリックし、「非表示のWiFiネットワークに接続...」に移動して作成したwifiホットスポットをアクティブ化します。 「Wi-Fiアダプター」、および「接続」のアクセスポイント名(例:「wifi-hotspot」)を選択します。「ネットワーク名」、「Wi-Fiセキュリティ」、および「パスワード」フィールドが自動入力されます。グレーアウト。 「接続」をクリックします。 WiFiアクセスポイントは、内部カードで有効になります。電話などのデバイスを接続できます。
  5. 最後に、WiFiホットスポットをアクティブにして、セカンダリ/ USB WiFiアダプターを接続し、それを使用して有料ネットワークに接続します。サブスクリプションなどを支払うと、このアダプターを介したインターネットが、構成したばかりの内部「アクセスポイント」アダプターを介して接続されたデバイスに自動的にブロードキャストされます。
  6. できた!

参照:/etc/NetworkManager/system-connectionsフォルダーパスと代替アプローチ(私にとっては機能しませんでした)が見つかりました: https://askubuntu.com/a/609199/327339

0
Gabriel Staples