今までのネットワーク接続はeth0でTAP-WIN32のアダプタに接続し、ホストマチン(Windows)のインターネット共有している。この方法で簡単にゲストのLinuxから外部(インターネットなど)に接続することはできるけど、外部(社内ネットワーク)からはゲストので動いているサーバへアクセスできない。社内ネットワークではcoLinuxのインスタンスに勝手にIPアドレスを与えることはできない場合サーバを公開したいならホストからゲストへポートをフォーワードするしかない。

以下の設定はetho0にTAP-WIN32の設定が既にあることを前提としている。

  1. ホスト(Windows)側のcoLinuxの設定ファイルにslirpのインタフェースを追加する:

       1  eth1=slirp,,tcp:22:22/tcp:80:80/tcp:443:443
    

  2. ゲスト(Linux)側の/etc/network/interfacesにeth1を追加:

       1  # secondary network for external network access
       2  iface eth1 inet static
       3     address 10.0.2.15
       4     network 10.0.2.0
       5     broadcast 10.0.2.255
       6     netmask 255.255.255.0
       7     gateway 10.0.2.2
    
    10.0.2.15は適当なアドレスだけど、gatewayの10.0.2.2は特別で、slirpデーモンのデフォルトアドレスだ。

この記事ではcolinux0.7.3のUbuntuで行なったけど、DebianやFedoraでも設定が同じだろう。ちなみに、XAMPPやandLinuxのようなパッケージを使えばこの設定は不要らしい。

注意点

  • windows側のfirewall設定
  • 複数default gatewayのルーティング問題。解決策が二つ:
    1. SLiRPのgatewayのみにする。要するにeth0/tapにgatewayを定義せず、インターネットの通信をslirpに通す。このやりかたがわりと簡単だけど、SLiRPが若干遅いことと10.0.2.2(slirpデーモン)以外のところにpingできない
    2. 複数default gatewayのルーティングの設定をする (iproute2でpolicy routing)
  • SLiRPはIPv6に対応していないため、ゲスト側で効果したいサービスがIPv6のアドレスにバインドしてしまうとうまくいかない。netstat -n --inet6 --listeningなどで確認んできる。たとえば、sshの場合は:
       1      Proto Recv-Q Send-Q Local Address    Foreign Address    State      
       2      tcp6        0      :::22             :::*               LISTEN 
    
    この問題を解決するにはIPv6を無効化にするか、各種サービスを明示的にIPv4のアドレスに設定する。

参考

posted by Face lchin on Thu 27 Nov 2008 at 15:58

先日、lchinさんがブログで紹介していたシェル fish をCentOSにインストールしてみます。

「fish」(Friendly Interactive SHell)を使ってみる - レオメモ - s21g

yumのレポジトリの追加

fishをインストールするには、dagレポジトリを追加する必要があります。

fishをインストール

レポジトリの追加が完了すると、普通にyumでインストールできます。

   1  # yum install fish

fishを使ってみる

fishを使用している様子は、Ichinさんの記事公式のスクリーンショットを参考に。

10分くらい触った感想を箇条書きで...

  • ものすごくカラフル
  • 補完機能が便利(manのあととか、サブコマンドとか、オプションとか軽い説明つきで候補が表示される)
  • いちいちカラフル

これからしばらくfishを使ってみようと思います。

以上、fishの速攻レビューでした。

参考になりそうなページ

fishが紹介されているページを適当に探してみたので、あとで参考にしよう。

posted by Png y_tsuda on Thu 27 Nov 2008 at 11:22
Contents
SLiRPによって社内ネットワークにcoLinux上のサーバを公開する方法
CentOS 5.2 に fish (Friendly Interactive Shell) をインストール
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
KingofSmack: Here also good reads for this mobile applicatio... '14-5
Spencer: You don't have to re-compile it, this version w... '14-4
staiano: Any chance we can get a recompile for 10.9? '14-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ