webdevqa.jp.net

UbuntuとAndroid:イーサネットを介して電話とラップトップのテザーインターネット接続を別のラップトップと共有する

まず、私が解決しようとしている問題について説明しましょう。

私はAndroid 2.2電話を持っており、USB経由でUbuntu 10.10を実行しているラップトップにインターネット接続をつなぎます。私がやりたいのは、このインターネット接続をイーサネットケーブル経由でUbuntu10.10を実行している別のラップトップと共有することです。

私はインターネットを探していましたが、他の誰かがこれを行おうとしているケースは見たことがありません。誰かがこれに関するリソースを知っているなら、私に知らせてください。

Pingを介して一方向に通信するデバイスを取得したと思いますが、他の方向に進むことはできません。これは、インターネット接続がブロックされていると私が信じているところです。

私がこれを行った方法は、電話が接続されているマシンにインストールされ、次のガイドを使用して、NATを使用するFirestarterを使用することでした: http://www.fs-security.com/docs/connection-sharing =。

基本的に、接続を提供しているインターフェイスはusb0であり、eth0を介して接続を共有しようとしています。私は基本的に上記のガイドに従い、eth0のインスタンスをusb0に、etho1をetho0に置き換えました。率直に言って方法がわからないので、Android電話でDHCPを有効にすることだけができません。

最終的にFirestarterを使用してこれを行う必要がないことを望んでいるため、FirestarterのDHCPオプションを使用する代わりに手動でネットワークを構成しました。

より具体的には、これは私がしたことです:GUIネットワーク接続を介して:

最初のラップトップ(電話に接続されているもの)

IPアドレス:192.168.0.1ネットマスク:255.255.255.0デフォルトゲートウェイ(IP):

2番目のlatopでも、ネットワーク接続を介して:IPアドレス:192.168.0.2ネットマスク:255.255.255.0デフォルトゲートウェイ:192.168.0.1 *私の/etc/resolv.confファイルには実際には何も表示されないため、問題が発生する可能性があります。

*また、Firestarterを介してイーサネット経由でワイヤレス接続を共有しようとしましたが、それも機能しませんでした。 2台のラップトップ間でpingを実行できますが、インターネットを利用できません。

下部には、セットアップをテストする方法が記載されています。ガイドに記載されているように192.168.0.2にpingを実行して、応答を得ることができます。ただし、共有接続を取得しているはずのラップトップでgoogle.comにアクセスできません。さらに、2台目のラップトップでは、電話にpingを実行できます。ただし、電話から2番目のラップトップにpingを実行できません。これが私がインターネットにアクセスできないと私が信じる理由です。

この接続を機能させるために何をする必要があるのか​​途方に暮れています。電話が接続されているlatopのusb0とeth0の間の接続をブリッジする必要がありますか?それとも、Firestarterがすでに行っていることですか?

**補足:実行中のマシンでFirestarterをオフにすると、2台目のラップトップから電話にpingできません。

誰かがこれを機能させる方法のアイデアを持っているなら、それは大いにありがたいです。

7
Tyler

これらの手順は一種の低レベルであり、たとえば、現在のGNOME3ディストリビューションでNetworkManagerを使用して自動化できます。ただし、さまざまなLinuxディストリビューションおよびバージョンで機能する必要がある低レベルの手順は次のとおりです。

ステップ1:USBで電話に直接接続されているボックスでusb0インターネット接続が正常に機能するようにします。

ステップ2:コンピューター間のイーサネットケーブルを接続します。

ステップホストコンピューターでrootとして次のコマンドを使用するか、Sudoでラップします。
ifconfig eth0 192.168.0.1(または 指定されたLAN IPセグメント内で独自のIPアドレスを選択
ifconfig eth0 netmask 255.255.255.0

ステップ4clientコンピューター(現在インターネットに接続されていないコンピューター)でrootとして使用するか、Sudoでラップします。
ifconfig eth0 192.168.0.2(最初の3つの番号は同じである必要があり、最後の番号はホストコンピューターのプライベートIPとは異なる必要があります)

ifconfig eth0 netmask 255.255.255.0

ステップ5here から適応、これらのステップをルートとして実行するか、ホストコンピューターでSudoにラップします。
echo 1 > /proc/sys/net/ipv4/ip_forward

/sbin/iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE

/sbin/iptables -A FORWARD -i usb0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

/sbin/iptables -A FORWARD -i eth0 -o usb0 -j ACCEPT

既存の設定(Firestarterが行ったことなど)がある場合は、ホスト上のiptablesをフラッシュする必要がある場合がありますbeforeステップ5を実行します:

iptables -F

を使用して既存の設定を確認できます

iptables -L

最後に:おそらく、usb0接続からLAN上にプライベートIPアドレスをすでに持っています。 できないeth0NATのNAT)に同じIPサブネットを使用します。したがって、usb0に192.168.0.10がある場合、192.168。から何も使用できません。いずれかのコンピューターのeth0の0.x。

1
allquixotic

USB経由でテザーする必要がありますか? Wifiが少なくとも1台のコンピューターで利用できる場合は、AndroidでWifi APを作成し、いずれかのラップトップでWi-Fiに接続してから、2台のラップトップをイーサネットで接続できるはずです。 Wi-Fi接続を介してトラフィックをルーティングするように「中間」ラップトップを構成します。たとえば、Windowsでは、インターネット接続の共有用にアダプターを構成します。

私が上で述べたことのどれもUSBテザリングでは機能しないので、WiFiに切り替える方が良いでしょう。

0
Justin