「PPP 接続の共有」の版間の差分
ナビゲーションに移動
検索に移動
(en:Sharing PPP Connectionへの転送ページ) |
|||
1行目: | 1行目: | ||
+ | [[Category:ネットワーク]] |
||
− | #redirect[[en:Sharing PPP Connection]] |
||
+ | [[en:Sharing PPP Connection]] |
||
+ | == 要件 == |
||
+ | まず最初に以下を確認してください: |
||
+ | # PPP 接続がつながっていること。 |
||
+ | # 接続を共有するのに使用する Ethernet インターフェイスカードがコンピュータに接続されていること。 |
||
+ | |||
+ | == インストール == |
||
+ | 有線・無線どちらの共有でも[[公式リポジトリ]]から以下のパッケージを[[pacman|インストール]]する必要があります: |
||
+ | * {{Pkg|iptables}}: ネットワーク内のパケットを制御。 |
||
+ | * {{Pkg|dnsmasq}}: DHCP と DNS のキャッシュサーバーとして使用。 |
||
+ | * {{Pkg|bridge-utils}}: ネットワークブリッジの設定。 |
||
+ | |||
+ | 無線と有線どちらの接続を共有したいかによって、以下のパッケージもインストールしてください: |
||
+ | * '''有線''': {{Pkg|iproute2}} または {{Pkg|net-tools}} ({{ic|net-tools}} は廃止予定なのでこの記事では {{ic|iproute2}} を使います)。 |
||
+ | * '''無線''': {{Pkg|iw}} または {{Pkg|wireless_tools}} ({{ic|wireless_tools}} は廃止予定なのでこの記事では {{ic|iw}} を使います)。 |
||
+ | |||
+ | == 有線イーサネットの共有 == |
||
+ | |||
+ | * PPP 接続を立ち上げます。 |
||
+ | : 以下を (root で) 実行して、通常通りに IP アドレスをインターフェイスに割り当てます: |
||
+ | # ip addr add 192.168.0.254 dev eth0 |
||
+ | * カーネルをルーターモードに設定してください。以下を実行: |
||
+ | # sysctl net.ipv4.ip_forward=1 |
||
+ | * [[dnsmasq]] を設定します。{{ic|/etc/dnsmasq.conf}} に以下の変更を加えて下さい (必要ならアンコメント): |
||
+ | {{hc|/etc/dnsmasq.conf|<nowiki> |
||
+ | domain-needed |
||
+ | bogus-priv |
||
+ | interface=eth0 # change to your chosen interface |
||
+ | dhcp-range=192.168.0.1,192.168.0.100,12h</nowiki> |
||
+ | }} |
||
+ | * '''dnsmasq''' デーモンを[[起動]]してください。 |
||
+ | * 最後に、インターネットからの接続をインターフェイスに接続しているクライアントに転送するようにファイアウォールを設定します。以下を実行: |
||
+ | # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE |
||
+ | :上記の '''ppp0''' インターフェイスが使用する PPP インターフェイスになります。必要に応じて置き換えて下さい。 |
||
+ | * 設定完了です。 |
||
+ | |||
+ | {{Warning|上記の設定はセキュリティを保護するようになっていません。ファイアウォールを使っている場合、適当に修正してください。同じことおは WLAN インターフェイスの設定にもあてはまります。}} |
||
+ | |||
+ | === ネットワークブリッジ === |
||
+ | 以下 PPP 接続が '''eth0'''、接続を共有するのが '''eth1''' と '''eth2''' とします。 |
||
+ | |||
+ | # ip addr add 0.0.0.0 dev eth1 # remove IP from eth0 |
||
+ | # ip link set eth1 up # ensure the interface is up |
||
+ | |||
+ | # ip addr add 0.0.0.0 dev eth2 # remove IP from eth1 |
||
+ | # ip link set eth2 up # ensure the interface is up |
||
+ | |||
+ | # brctl addbr br0 # create br0 node |
||
+ | # brctl addif br0 eth1 # add eth0 to bridge br0 |
||
+ | # brctl addif br0 eth2 # add eth1 to bridge br0 |
||
+ | |||
+ | # ip addr add 192.168.0.254 dev br0 |
||
+ | {{ic|dnsmasq.conf}} のインターフェイスを '''br0''' に変えてください: |
||
+ | interface=br0 |
||
+ | そして '''dnsmasq''' デーモンを再起動してください。 |
||
+ | |||
+ | これで '''eth1''' と '''eth2''' でインターネットに接続できるようになります。 |
||
+ | |||
+ | == WLAN の共有 == |
||
+ | |||
+ | {{Warning|以下の手順では''暗号化しない''アドホックネットワークを作成します。WPA1 暗号を使用する方法は[[アドホックネットワーク#WPA supplicant]] を見て下さい。セキュリティを高めたいときは、WPA2 によって暗号化する[[ソフトウェアアクセスポイント]]を作成してください。}} |
||
+ | |||
+ | * PPP 接続を立ち上げて下さい。 |
||
+ | * WLAN 接続を設定します: SSID を選択してネットワークタイプにアドホックを選択してください。以下では '''wlan0''' インターフェイスを使うこととします。 |
||
+ | |||
+ | : 192.168.0.254 などのアドレスに '''wlan0''' インターフェイスを設定します。インターフェイスの設定は以下を実行することで行います: |
||
+ | # iw wlan0 set type ibss |
||
+ | # iw wlan0 ibss join MyFreeWlan |
||
+ | |||
+ | : その後、通常通りに IP アドレスをインターフェイスに割り当てます。以下を実行: |
||
+ | # ip addr add 192.168.0.254 dev wlan0 |
||
+ | : ワイヤレスカードによっては設定方法は変わってくる可能性があります。 |
||
+ | * カーネルをルーターモードに設定してください。以下を実行: |
||
+ | # echo 1 > /proc/sys/net/ipv4/ip_forward |
||
+ | * '''dnsmasq''' を設定します。{{ic|/etc/dnsmasq.conf}} に以下の変更を加えて下さい (必要に応じてアンコメント): |
||
+ | {{hc|etc/dnsmasq.conf|<nowiki> |
||
+ | domain-needed |
||
+ | bogus-priv |
||
+ | interface=wlan0 # change to your interface |
||
+ | dhcp-range=192.168.0.1,192.168.0.100,12h</nowiki> |
||
+ | }} |
||
+ | * '''dnsmasq''' デーモンを[[起動]]してください。 |
||
+ | * 最後に、WLAN に接続しているクライアントにインターネットからの接続を転送するようにファイアウォールを設定します。以下を実行: |
||
+ | # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE |
||
+ | |||
+ | : 上記では '''ppp0''' インターフェイスを使用していますが、必要に応じて置き換えて下さい。 |
||
+ | * これで設定は完了です。 |
||
+ | |||
+ | == 共有スクリプト == |
||
+ | アドホックネットワークの ''wlan0''' で '''eth0''' を共有するスクリプト: |
||
+ | {{hc|ethoverwlan.sh| |
||
+ | #!/bin/bash |
||
+ | |||
+ | iw wlan0 set type ibss |
||
+ | iw wlan0 ibss join proxywlan |
||
+ | ip addr add 192.168.0.254 dev wlan0 |
||
+ | ip link set wlan0 up |
||
+ | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
||
+ | echo 1 > /proc/sys/net/ipv4/ip_forward |
||
+ | }} |
||
+ | |||
+ | == 参照 == |
||
+ | * [[シンプルなステートフルファイアウォール]] |
||
+ | * [[ルーター]] |
||
+ | * [[ワイヤレス設定]] |
||
+ | * [[USB 3G モデム]] |
||
+ | * [http://go2linux.garron.me/linux/2011/03/share-your-3g-internet-connection-over-wifi-linux-ipod-touch-925 Share your 3G Internet connection over wifi] |
2015年12月28日 (月) 16:44時点における版
要件
まず最初に以下を確認してください:
- PPP 接続がつながっていること。
- 接続を共有するのに使用する Ethernet インターフェイスカードがコンピュータに接続されていること。
インストール
有線・無線どちらの共有でも公式リポジトリから以下のパッケージをインストールする必要があります:
- iptables: ネットワーク内のパケットを制御。
- dnsmasq: DHCP と DNS のキャッシュサーバーとして使用。
- bridge-utils: ネットワークブリッジの設定。
無線と有線どちらの接続を共有したいかによって、以下のパッケージもインストールしてください:
- 有線: iproute2 または net-tools (
net-tools
は廃止予定なのでこの記事ではiproute2
を使います)。 - 無線: iw または wireless_tools (
wireless_tools
は廃止予定なのでこの記事ではiw
を使います)。
有線イーサネットの共有
- PPP 接続を立ち上げます。
- 以下を (root で) 実行して、通常通りに IP アドレスをインターフェイスに割り当てます:
# ip addr add 192.168.0.254 dev eth0
- カーネルをルーターモードに設定してください。以下を実行:
# sysctl net.ipv4.ip_forward=1
- dnsmasq を設定します。
/etc/dnsmasq.conf
に以下の変更を加えて下さい (必要ならアンコメント):
/etc/dnsmasq.conf
domain-needed bogus-priv interface=eth0 # change to your chosen interface dhcp-range=192.168.0.1,192.168.0.100,12h
- dnsmasq デーモンを起動してください。
- 最後に、インターネットからの接続をインターフェイスに接続しているクライアントに転送するようにファイアウォールを設定します。以下を実行:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
- 上記の ppp0 インターフェイスが使用する PPP インターフェイスになります。必要に応じて置き換えて下さい。
- 設定完了です。
ネットワークブリッジ
以下 PPP 接続が eth0、接続を共有するのが eth1 と eth2 とします。
# ip addr add 0.0.0.0 dev eth1 # remove IP from eth0 # ip link set eth1 up # ensure the interface is up
# ip addr add 0.0.0.0 dev eth2 # remove IP from eth1 # ip link set eth2 up # ensure the interface is up
# brctl addbr br0 # create br0 node # brctl addif br0 eth1 # add eth0 to bridge br0 # brctl addif br0 eth2 # add eth1 to bridge br0
# ip addr add 192.168.0.254 dev br0
dnsmasq.conf
のインターフェイスを br0 に変えてください:
interface=br0
そして dnsmasq デーモンを再起動してください。
これで eth1 と eth2 でインターネットに接続できるようになります。
WLAN の共有
- PPP 接続を立ち上げて下さい。
- WLAN 接続を設定します: SSID を選択してネットワークタイプにアドホックを選択してください。以下では wlan0 インターフェイスを使うこととします。
- 192.168.0.254 などのアドレスに wlan0 インターフェイスを設定します。インターフェイスの設定は以下を実行することで行います:
# iw wlan0 set type ibss # iw wlan0 ibss join MyFreeWlan
- その後、通常通りに IP アドレスをインターフェイスに割り当てます。以下を実行:
# ip addr add 192.168.0.254 dev wlan0
- ワイヤレスカードによっては設定方法は変わってくる可能性があります。
- カーネルをルーターモードに設定してください。以下を実行:
# echo 1 > /proc/sys/net/ipv4/ip_forward
- dnsmasq を設定します。
/etc/dnsmasq.conf
に以下の変更を加えて下さい (必要に応じてアンコメント):
etc/dnsmasq.conf
domain-needed bogus-priv interface=wlan0 # change to your interface dhcp-range=192.168.0.1,192.168.0.100,12h
- dnsmasq デーモンを起動してください。
- 最後に、WLAN に接続しているクライアントにインターネットからの接続を転送するようにファイアウォールを設定します。以下を実行:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
- 上記では ppp0 インターフェイスを使用していますが、必要に応じて置き換えて下さい。
- これで設定は完了です。
共有スクリプト
アドホックネットワークの wlan0' で eth0 を共有するスクリプト:
ethoverwlan.sh
#!/bin/bash iw wlan0 set type ibss iw wlan0 ibss join proxywlan ip addr add 192.168.0.254 dev wlan0 ip link set wlan0 up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward