LXCコンテナのネットワーク設定
友人に教えてもらいながらあれこれいじったらつながったので,やり方をまとめておきます.
使っているのはDebian jessieです.
コンテナは既に作成できているとして進めます.
ブリッジを作成する
nm-connection-editorを使いました.
(MATEの場合はパネルのシステム-設定-ネットワークの設定でもOK)
追加ボタンからブリッジを作成し,編集でIPv4のセッティングを開き,方式を手動に変更. アドレスを追加して以下のように設定.
アドレス:192.168.122.1
ネットマスク:255.255.255.0
ゲートウェイ:0.0.0.0
コンテナ側のネットワーク設定
/var/lib/lxc/myjessie/下の以下のファイルをいじります.
- config
- rootfs/etc/network/interfaces
- rootfs/etc/resolv.conf
以下を追加. config:
lxc.network.type = veth lxc.network.flags = up lxc.network.link = br0 lxc.network.ipv4 = 192.168.122.2/24 lxc.network.ipv4.gateway = 192.168.122.1
/rootfs/etc/network/interfaces:
auto eth0 # iface eth0 inet dhcp iface eth0 inet static address 192.168.122.2 netmask 255.255.255.0 network 192.168.122.0 broadcast 192.168.122.255 gateway 192.168.122.1
/rootfs/etc/resolv.conf:
nameserver 8.8.8.8
ホスト側の設定
ここまでやればホストとコンテナはつながっているので*2,コンテナが外にアクセスできるようにします.
まずetc/sysctl.confの次の行のコメントアウトを削除.
#net.ipv4.ip_forward=1
その後,iptablesでNATを以下のように設定. 予めnetfilter-persistentをインストールしておくこと.
% sudo iptables -A FORWARD -i br0 -s 192.168.122.2/24 -m conntrack --ctstate NEW -j ACCEPT % sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT % sudo iptables -t nat -A POSTROUTING -s 192.168.122.2/24 -j MASQUERADE % sudo iptables-save % sudo /etc/init.d/netfilter-persistent save % sudo /etc/init.d/netfilter-persistent restart
これでコンテナから外にアクセスできると思います.
参考
以下の記事を参考にさせていただきました.ありがとうございます.
NetworkManager で仮想環境用に bridge を作成
おまけ:コンテナにpingをインストール
コンテナにpingがインストールされてなくて,困っている方も多いのではないでしょうか.コンテナのネットワークが設定できていなくても,chrootを使えばインストールできます.*3
% sudo chroot /var/lib/lxc/myjessie/rootfs % apt-get install iputils-ping
セミナー予習のやり方
なんとなく書く.参考になれば.
- とりあえず予習するつもりの範囲をさーっと読む.定理の証明は追わずに主張だけをみてどういう流れで何を示すのかを把握する.
- もう一回最初から証明も含めて読む.読んで詰まるところは?マークをつけて飛ばす.
- ?マークの場所を考える.1つだけに時間をかけるのではなくまんべんなく.
- ノートの清書とかをする.
全体の流れを掴んでから考えるほうが行間も埋まりやすくなる場合もあるし,補題や定理を考える意味がわかりやすくなって発表時の構成が考えやすいのでよいと思います.
発表時は以下の2点に気をつけてます.
- 最初にどういう流れで何を示すのかを説明する.聞く人は発表範囲を読んでいるのでざっくりとした説明でOK.
- 発表内容は基本的に全て暗記する.たまにノートを見るのはしょうがないけどずっとノート見ながら板書するのとかは避ける.
- 分からなかった場所をはっきりと聞く.聞くは一時のなんちゃらってやつです.
pythonのパッケージのインストール
まず,Pythonのパッケージ管理システムpipをインストールする.pythonが入っていればそれを使ってインストール出来るらしい.適当な場所にhttps://bootstrap.pypa.io/get-pip.pyをダウンロード.linuxであれば
でOK.
これをpythonで実行すればインストールされる.sudo権限が必要なので忘れずに.
パッケージインストールは
sudo pip install [パッケージ名]
でOK.昔はeasy_installとかなんとかやってたけど今は必要ないらしい.便利になったなあ.
emacsを導入したので覚え書き
友人・先輩に手伝ってもらったので,他のPCにインストールするときようにメモを残しておく.
emacs自体は
sudo apt-get install emacs
でインストール出来る.
自分はパッケージが見つからない的なことを言われたので,
/etc/apt/sources.listを見てみると以下の文があってエラーになっているようだったので削除.
deb http://backports.debian.org/debian-backports squeeze-backports main
だいぶ前のバージョンのパッケージリストも参照していたみたい.なんで入ってたのかはよくわかりませんでした.
sudo apt-get update
sudo apt-get install emacs
でインストールできた.
あとOSをインストールした直後はmakeコマンドが入ってないときがあるので,その場合は忘れずにapt-get installしとえくこと.
次に友人オススメのemacsあれこれをインストールする.まず設定フォルダの初期化をするために一旦emacsを起動してすぐ終了.そして.emacs.dフォルダにemacsの初期化ファイルinit.elを作成する.
touch init.el
emacs init.el
これにいろいろ書くことでパッケージのインストール及び初期化をやってくれる.他のPCに同じ環境を作る時もパッケージのインストールをまた新たにやる必要はなくinit.elを移すだけでいいらしい.
以上.
数学科の人にお勧めしたい数学書
調べるといろんな人がお勧めの数学書を書いているけれど,自分が読んでいた本がほとんど挙げられていなかったので書いてみることにしました.
ちなみに筆者の専門は複素幾何です.
(ほとんど)読んでないけど良さげだなと思ったり良い評判を聞いてる本は(*)付きで書いています.
勉強する本を選ぶときの参考になれば.
続きを読むwebサーバーの設定
こんにちは.VPNの設定がどうもうまくいかないので,先にWebサーバーの設定のほうからすることにしました.
ここから先はGUIは使わず,SSHを使って他のマシンからコマンドライン上で扱うことになります.
cd,ls,mkdir等のファイル操作,apt-getを使ったソフトのインストール等コマンドラインの扱いはどこかで勉強しておきましょう.(ここでは扱いません)
ちょうど今からやることについてまとめてくれている記事があったので,これに従って設定しました.
test.htmlを作る際は管理者権限が必要なのでsudoでエディタを呼び出すようにしましょう.一般ユーザーがsudo(管理者権限で実行)できるようにする方法は以下のページに書いてあります.
一般ユーザーを sudo できるようにする - maruko2 Note.
sudo vi test.html みたいな感じで.
(とりあえずここまで)