2014年12月13日 星期六

自訂開機後運行服務

#設定Ethernet
# systemctl enable dhcpcd.service#開機自動取得IP
# systemctl start dhcpcd #啟動dhcpcd

#手動設定wireless, 三步驟:1. scan ssid, 2.pass (WEP/WPA) authenication, 3.dhcpd/manual get IP
# pacman -S iw
# pacman -S wpa_supplicant

#方法一 connect with wpa_passphrase
# iw dev wlan0 scan | less #掃描SSID
#通過wpa2認證(通過後開新terminal執行dhcpcd wlp1s0或是加上-B讓此步驟背景化再執行dhcpcd wlp1s0要IP)
# wpa_supplicant -i wlp1s0 -c<(wpa_passphrase "YOUR_SSID" YOUR_KEY)
# dhcpcd wlp1s0

#方法二 connect with wpa_cli
# mkdir /var/run/wpa_supplicant
# chgrp wheel /var/run/wpa_supplicant
# vim /etc/wpa_supplicant/wpa_supplicant.conf
   ctrl_interface=/var/run/wpa_supplicant
   update_config=1
# wpa_supplicant -B -i wlp1s0 -c /etc/wpa_applicant/wpa_supplicant.conf
# wpa_cli                            #進入wpa_cli互動模式, 示範過程看https://wiki.archlinux.org/index.php/WPA_supplicant
/index.php/WPA_supplicant
>scan
>scan_results
>add_network
>set_network 0 ssid "YOUR_SSID"
>set_network 0 psk "YOUR_KEY"
>enable network 0
>save_config
>quit
# dhcpcd wlp1s0

#開機自動連接wireless
#dhcpcd會執行所有/usr/lib/dhcpcd/dhcpcd-hooks/下的script(hooks),
#其中的10-wpa_supplicant hook會自動對wireless介面呼叫wpa_supplicant進行認證
#10-wpa_supplicant hook的發動條件
1.沒有wpa_supplicant常駐
2.dhcpcd檢查到任一設定檔存在
   /etc/wpa_supplicant/wpa_supplicant-"$interface".conf
   /etc/wpa_supplicant/wpa_supplicant.conf
   /etc/wpa_supplicant-"$interface".conf
   /etc/wpa_supplicant.conf

#因此在正確位置放好wpa_supplicant設定檔, 將dhcpcd掛入開機自動執行(見上方設定Ethernet段)後, 開機時dhcpcd即可自動完成wireless的啟動
#關閉dhcpcd hook的行為是在dhcpcd.conf加入nohook wpa_supplicant命令

# vim /etc/wpa_supplicant/wpa_supplicant.conf
   ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
   update_config=1
   fast_reauth=1
   ap_scan=1
# wpa_passphrase "Inn of the Last Home" "YOUR_KEY>>
/etc/wpa_supplicant/wpa_supplicant.conf

#自動對時, 2014/12/15時arch linux的ntpd會嘗試listen on ipv4導致啟動失敗,
依照下列方式強制其只開啟在ipv4
# pacman -S ntpd
# cat /usr/lib/systemd/system/ntpd.service
#檢查是否有一行像這樣:ExecStart=/usr/bin/ntpd -g -u ntp:ntp , 是的話繼續下面動作
# vim /etc/systemd/system/ntpd.service.d/customexec.conf
[Service]
ExecStart=
ExecStart=/usr/bin/ntpd -4 -g -u ntp:ntp
# systemctl enable ntpd

#安裝ssh及sshd
#pacman -S openssh
#systemctl start sshd
#systemctl enable sshd.service

沒有留言:

張貼留言