這次輪到在VS Code上開發C/C++程式,被宇宙最強IDE Visual Studio寵壞的關係,一開始搞不清楚到底在設定什麼東西,最後終於搞懂幾件關於VS Code的機理:
2017年9月21日 星期四
2017年9月20日 星期三
[VS Code][Bash Shell Script] Debug環境設定
Shell Script也是可以Debug的,下斷點、看變數內容...都可以,VS Code配來寫Shell Script也是很下飯,記錄一下環境設定
2017年9月18日 星期一
[LINUX] 跨網域連接NFS伺服器 - Part2 - 透過ssh tunnel連接NFS
透過Part1,example.ddns.net:22已經開通,通過這個連接點再配合Virtual Server連接到內網伺服器進行ssh登入,可以開始在異地登入ssh替伺服器做設定
2017年9月17日 星期日
[LINUX] 垮網域連接NFS伺服器 - Part1 - 設定DDNS與Virtual Server
目前有某台CentOS主機放在老家作為個人小伺服,硬碟裡面收藏了無數家珍(嘿嘿),只是就算開了NFS服務(Network File Systme)也只能在老家的區域網路內使用,回到租屋處該怎麼透過網際網路連回去呢?
2016年1月19日 星期二
[Raspberry Pi] Ad Hoc
Ad Hoc,拉丁原文有"將就的、隨意的"的語意,在Wifi協定中代表"無線隨意網路",也就是不需要中央基地台,通訊端之間即能夠構成的網絡
相較於Ad Hoc模式,Infrastructure就是日常生活中熟悉的中心輻射式網路拓樸,網路內通訊統一透過中央基地台分發
在Linux下設定Ad Hoc模式的步驟非常簡單,只要改/etc/network/interface內設定再重開裝置即可!
參考:http://spin.atomicobject.com/2013/04/22/raspberry-pi-wireless-communication/
步驟:
- $sudo vim /etc/network/interface #改網路設定
- wlan0設定如下
iface wlan0 inet static #靜態IP
address 192.168.1.1 #設定IP
netmask 255.255.255.0 #設定子網路遮罩
wireless-channel 1 #訊號通道
wireless-essid RPiAdHocNetwork #暴露在可用的Wifi清單中的名稱
wireless-mode ad-hoc #模式:ad-hoc
- 存檔
- $sudo ifdown --force wlan0 #先將wlan0關閉(強制下架)
- $sudo ifup wlan0 #再將wlan0重新打開,套用方才設定的設定值
如此一來就可以了,果真隨意簡單
原先以為通訊上不用經過HUB或許傳輸上會變快,殊不知ad hoc是比Infrastructure更為古老的架構,許多針對Wifi傳輸最佳化的方法可能都不支援,而且還帶有一些毛病,參考此篇:Limitations of Ad Hoc Mode Wireless Networking
實際用iperf測速,使用Ad Hoc相較於Infrastructure,傳輸速度完全沒有提昇,該是嘗試Wifi Direct看看
2015年7月11日 星期六
[LINUX] 使用憑證登入SSH
為何要使用憑證登入ssh呢? 因為如此一來登入ssh的動作就是認機不認人,簡單的說,往後登入SSH不需Key-in密碼,這在某些應用上是方便的,比如說 Github Private Server,若是透過ssh做push的話就不用每次都要打密碼,也可以很方便的用Git的圖形介面做同步(Sync)動作。
我用的是CentOS , 基本上是照著官方文件操作的
參考來源: http://wiki.centos.org/HowTos/Network/SecuringSSH#head-9c5717fe7f9bb26332c9d67571200f8c1e4324bc
概念如下:
在終端機上:
產生RSA憑證
#ssh-keygen -t rsa
如果一路enter到底的話,會在你的本機~/.ssh資料夾下產生id_rsa.pub檔案,即為公鑰
接著將此公鑰傳遞到伺服器上,
#scp ~/.ssh/id_rsa.pub user@192.168.0.1:/tmp
// 將id_rsa.pub拷貝到 192.168.0.1的tmp資料夾下,以user登入
在伺服器上(假設登入為user):
在~/.ssh資料夾下新建authorized_keys
#touch ~/.ssh/authorized_keys
接著匯入方才傳到伺服器上的公鑰內容到authorized_keys檔案內
#cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
最後設定一下SELinux(效果不明,不大清楚為何要做)
#restorecon -Rv ~/.ssh
官方文件就寫到此了,但是!!!!!本魯我卡在這裡仍是無法透過憑證登入!!!
原來還少幾個設定……(價值3小時)
在伺服器上(登入為root)
修改sshd設定
#vim /etc/ssh/sshd_config
裡頭有幾行設定預設是未開啟的,請把他們打開:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
接著重開sshd
#service sshd restart
如此一來才能透過RSA憑證登入,GOOGLE了好久最後自己發現
後記1:檢視公鑰碼(有時候弄到亂掉,可以下此指令比對終端機與伺服器上的公鑰是否一致)
#ssh-keygen -lf id_rsa.pub
後記2:CentOS 的 useradd 指令沒有 --disabled-password這個選項,只要單純的useradd user即能做到不允許密碼登入(因為密碼未設定)
我用的是CentOS , 基本上是照著官方文件操作的
參考來源: http://wiki.centos.org/HowTos/Network/SecuringSSH#head-9c5717fe7f9bb26332c9d67571200f8c1e4324bc
概念如下:
在終端機上:
產生RSA憑證
#ssh-keygen -t rsa
如果一路enter到底的話,會在你的本機~/.ssh資料夾下產生id_rsa.pub檔案,即為公鑰
接著將此公鑰傳遞到伺服器上,
#scp ~/.ssh/id_rsa.pub user@192.168.0.1:/tmp
// 將id_rsa.pub拷貝到 192.168.0.1的tmp資料夾下,以user登入
在伺服器上(假設登入為user):
在~/.ssh資料夾下新建authorized_keys
#touch ~/.ssh/authorized_keys
接著匯入方才傳到伺服器上的公鑰內容到authorized_keys檔案內
#cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
最後設定一下SELinux(效果不明,不大清楚為何要做)
#restorecon -Rv ~/.ssh
官方文件就寫到此了,但是!!!!!本魯我卡在這裡仍是無法透過憑證登入!!!
原來還少幾個設定……(價值3小時)
在伺服器上(登入為root)
修改sshd設定
#vim /etc/ssh/sshd_config
裡頭有幾行設定預設是未開啟的,請把他們打開:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#service sshd restart
如此一來才能透過RSA憑證登入,GOOGLE了好久最後自己發現
後記1:檢視公鑰碼(有時候弄到亂掉,可以下此指令比對終端機與伺服器上的公鑰是否一致)
#ssh-keygen -lf id_rsa.pub
後記2:CentOS 的 useradd 指令沒有 --disabled-password這個選項,只要單純的useradd user即能做到不允許密碼登入(因為密碼未設定)
2015年6月14日 星期日
[Raspberry Pi]連結無線網路…連了這麼久阿
好一陣子沒玩Raspberry PI了,弄個無線網路就弄老半天…記起來!
連結到已知AP,使用wpa_supplicant,步驟如下
1. 建立wpa資訊
#wap_passphrase "your_essid" "your_password" > /etc/wpa_supplicant/wps_supplicant.conf
此時會在 /etc/wpa_supplicant/wps_supplicant.conf 檔案裡建立一個block :
network = {
ssid = "your_essid"
psk = "your_password"
}
NOTE: 此檔案可有多個 network = {} block,即為AP清單
2. 使用wpa_supplicant連結AP,此時呼叫下列指令開啟deamon
#wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wps_supplicant.conf
NOTE1: 若deamon已開啟,則需要kill -9 先把deamon幹掉再重開,另尋正當方法中…
NOTE2: 另外方式就是重開機重跑wpa_supplicant
3. 確認AP是否已連結,使用iwconfig
#iwconfig wlan0
確認印出的資訊裡是否有ESSID:"your_essid",有了就是連上惹。
3. 最後,向AP要求動態IP
#dhclient wlan0
4. 用ifconfig確認wlan0是否已經獲得IP
看看inet addr 是否有值嚕
PS1: 若wpa_supplicant已經在作用中,使用iwconfig是無效的(不要浪費時間在這裡惹)
PS2: 開機後就使用wpa_supplicant管理無線網路:
設定/etc/network/interfaces,將wlan0的組態改為如下:
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
連結到已知AP,使用wpa_supplicant,步驟如下
1. 建立wpa資訊
#wap_passphrase "your_essid" "your_password" > /etc/wpa_supplicant/wps_supplicant.conf
此時會在 /etc/wpa_supplicant/wps_supplicant.conf 檔案裡建立一個block :
network = {
ssid = "your_essid"
psk = "your_password"
}
NOTE: 此檔案可有多個 network = {} block,即為AP清單
2. 使用wpa_supplicant連結AP,此時呼叫下列指令開啟deamon
#wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wps_supplicant.conf
NOTE1: 若deamon已開啟,則需要kill -9 先把deamon幹掉再重開,另尋正當方法中…
NOTE2: 另外方式就是重開機重跑wpa_supplicant
3. 確認AP是否已連結,使用iwconfig
#iwconfig wlan0
確認印出的資訊裡是否有ESSID:"your_essid",有了就是連上惹。
3. 最後,向AP要求動態IP
#dhclient wlan0
4. 用ifconfig確認wlan0是否已經獲得IP
看看inet addr 是否有值嚕
PS1: 若wpa_supplicant已經在作用中,使用iwconfig是無效的(不要浪費時間在這裡惹)
PS2: 開機後就使用wpa_supplicant管理無線網路:
設定/etc/network/interfaces,將wlan0的組態改為如下:
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
如此一來開機後就會以wpa_supplicant.conf的內容找尋是否有可用的AP,然後自動連接
訂閱:
文章 (Atom)