顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2017年9月21日 星期四

[VS Code][C/C++] 基本開發環境設定


這次輪到在VS Code上開發C/C++程式,被宇宙最強IDE Visual Studio寵壞的關係,一開始搞不清楚到底在設定什麼東西,最後終於搞懂幾件關於VS Code的機理:

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/

步驟:

  1. $sudo vim /etc/network/interface #改網路設定
  2. wlan0設定如下
    1. iface wlan0 inet static   #靜態IP
    2. address 192.168.1.1      #設定IP
    3. netmask 255.255.255.0    #設定子網路遮罩
    4. wireless-channel 1  #訊號通道
    5. wireless-essid RPiAdHocNetwork #暴露在可用的Wifi清單中的名稱
    6. wireless-mode ad-hoc #模式:ad-hoc
  3. 存檔
  4. $sudo ifdown --force wlan0  #先將wlan0關閉(強制下架)
  5. $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即能做到不允許密碼登入(因為密碼未設定)



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

如此一來開機後就會以wpa_supplicant.conf的內容找尋是否有可用的AP,然後自動連接