標籤

C++ (12) Linux (6) MacOSX (4) Makefile (3) Matlab (3) Ubuntu (3) Android (2) C (1) Refactoring (1)

2013年2月4日 星期一

[NAT Loopback] Buffalo WHR-G300N 並不支援 NAT Loopback

狀況是這樣的
我想把固定ip的某個port轉發(port forwarding)到LAN裡的某台桌機的port 22
這樣我就可以人在外面時
依然可以ssh遠端到我的桌機

登入192.168.11.1到Buffalo WHR-G300N
設定完Port Forwarding後
想說就當場說試試看可不可以用啦
總不能跑到外面試發現有問題在回家重設吧

接著我就ssh boton@140.x.x.x
得到的回應是
ssh: connect to host 140.x.x.x port 22: Connection refused

WTF...

阿不是設定port forwarding了嗎 到底哪裡有問題
找了許久也找不到有哪裡設定還要打開或調整之類的

後來google了一下才發現原來只有在LAN裡面不能這樣玩
到外面的網路就ok
當下心想這什麼妖術!!

原來是這台AP不支援NAT Loopback...

http://support.hornington.com/kb/question.php?ID=345
http://security.stackexchange.com/questions/16343/is-nat-loopback-on-my-router-a-security-problem

2013年2月2日 星期六

[Matlab] 在Linux下安裝Matlab並在Mac OS上遠端執行(X11 Forwarding)

Linux下安裝其實滿容易的
先將安裝檔 matlab_2012a_unix.iso 掛載起來:
sudo mkdir /mnt/temp
sudo mount -o loop path_to_matlab_iso/matlab_2012a_unix.iso /mnt/temp

接著切換目錄到剛掛載完的資料夾
cd /mnt/temp

再來就是安裝啦!
sh ./install

接著就會啟動MATLAB安裝導引程式

安裝完後可以用ln -s 將安裝完的matlab資料夾下的bin下的matlab連結到/usr/bin/
以方便使用
執行時若遇到

/lib64/libc.so.6: not found

這個問題
只要下 ln -s /lib/x86_64-linux-gnu/libc.so.6 /lib64/libc.so.6  即可輕鬆搞定

若是遇到
what():  locale::facet::_S_create_c_locale name not valid 程式中止
用echo $LANG檢查一下你的環境變數$LANG
透過export LANG='en_US.utf8'修改$LANG後
重新執行matlab應該就可以開啟囉

======================================================
要遠端執行Matlab並在近端看到圖形視窗也不難
首先要檢查有灌Matlab那台遠端主機的兩個檔案
/etc/ssh/ssh_config
(將這三行註解拿掉改成yes)
 20    ForwardAgent yes
 21    ForwardX11 yes
 22    ForwardX11Trusted yes

/etc/ssh/sshd_config
(將X11Forwarding打開)
X11Forwarding yes

接著重新啟動sshd
sudo ssh restart 
(若不行則用sudo service ssh restart)

到目前為止遠端主機已經設定完了


近端電腦我選用的是Mac OS X Mountain Lion
要注意的是Mountain Lion並不像Snow Leopard或其他較早版本
有內建X11

簡單google一下就會發現Apple提供了另一支程式XQuartz
並建議你使用他
http://support.apple.com/kb/HT5293

安裝完X11後
開啟Terminal執行ssh my_id@host.ip -X
記得後面要加-X這個選項 代表要開啟X11Forwarding
(在Mac OS X中則是以-Y代替-X)

接著就可以在ssh中執行matlab啦