您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么將路由器改裝成git服務器”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一臺能夠安裝OpenWRT(或者Linux系統的)路由器,我用的是一臺老設備,Netgear WND3700V1。 視你日常工作量大小,準備一個空間足夠的U盤,最好是高速的,當然這個高速是指能匹配路由器USB口的標準就足夠。
成文時,OpenWRT的版本是18.06.0,其它版本應當也可以,OpenWRT挺早就支持git軟件包了。也可能是我的問題,但至少看起來,這樣一個純技術網站,不FQ已經下載不到了。 因為各家路由設備的硬件復雜性,雖然都是同樣的OpenWRT,不同的路由器仍然要下載自己硬件對應的版本。 OpenWRT的安裝這里不講,請參考官方相關文檔。通常都是在自己路由器的管理界面使用軟件更新功能,選擇下載的固件文件,上傳隨后升級。 接著請根據自己家里網絡的情況,配置上網設置各項目,保證基本路由功能工作正常。
OpenWRT18.06.0的默認管理方式是使用ssh,方法:ssh root@[IP地址]。根據路由器的FLASH大小,比較小的FLASH是默認沒有WEB GUI界面的,比如我用的這臺。所幸大多情況下使用命令行配置路由器效率更高,而且有些工作是使用GUI界面做不到的。 OpenWRT的默認賬戶用戶名是root,沒有密碼,正常情況下第一次登陸會要求你修改密碼。在一個連接公網的環境中,請盡早登陸修改密碼。
如果你不用FQ就能訪問官方的源服務器的話,請跳過這一節內容。
OpenWRT使用opkg工具來管理擴展包。因為前面所說的原因,需要配置使用鏡像源來保證所需軟件包的安裝。 中間碰到一個小麻煩是國外的鏡像服務器,基本都使用了https協議,OpenWRT不能直接支持。國內的鏡像大多倒是http協議,但鏡像中又缺乏一些驅動包,無法驅動U盤。 所以如果找不到更好的完整源的話,只好把變更源這樣一件小事分成兩步來做。 opkg的源配置文件路徑為:/etc/opkg/distfeeds.conf,首先做一個備份,然后你可以使用你喜歡的編輯工具修改,我通常都是vi。 把distfeeds.conf文件的內容修改為:
src/gz openwrt_core http://openwrt.proxy.ustclug.org/releases/18.06.0/targets/ar71xx/generic/packages src/gz openwrt_kmods https://downloads.lede-project.urown.net/snapshots/targets/ar71xx/generic/kmods/4.9.117-1-e017c397f3c6ba06dc921b136a63fb36 src/gz openwrt_base http://openwrt.proxy.ustclug.org/releases/18.06.0/packages/mips_24kc/base src/gz openwrt_luci http://openwrt.proxy.ustclug.org/releases/18.06.0/packages/mips_24kc/luci src/gz openwrt_packages http://openwrt.proxy.ustclug.org/releases/18.06.0/packages/mips_24kc/packages src/gz openwrt_routing http://openwrt.proxy.ustclug.org/releases/18.06.0/packages/mips_24kc/routing src/gz openwrt_telephony http://openwrt.proxy.ustclug.org/releases/18.06.0/packages/mips_24kc/telephony 這里面使用了兩個源,分別是:http://openwrt.proxy.ustclug.org和https://downloads.lede-project.urown.net。
接著在OpenWRT命令使用opkg update命令,只要網絡沒有問題,可以完成源目錄包的更新,當然在https的那個源會報錯,先不用管。
通常的情況下,每次進行包安裝工作之前進行一次opkg update就夠了,這是下載軟件源中的所有目錄索引到本地。路由器關機、或者云端的源內容發生了變化才需要重新執行。
隨后安裝https協議所需的軟件包:
opkg install libustream-openssl ca-bundle ca-certificates
接著再做一次opkg update,這一次,應當所有的源都可以拿到目錄包了。 如果你有更好的http源,配置https訪問這一步可以省略。
至此,opkg包管理工具算配置完成。喜歡使用GUI界面的話,這時候可以使用下面命令安裝:
opkg update opkg install luci
如果只是當做私有云盤使用,U盤的格式可以隨意。但如果打算用作git倉庫以及用以彌補路由器可憐的FLASH存儲,則必須使用Linux專有格式,比如EXT4。所以準備用在路由器上的U盤你要提前做好備份,因為后面的安裝會重新格式化U盤。 首先是安裝加載U盤所需的各項驅動和相關支持工具:
#假設你已經做過opkg udpateopkg install block-mount e2fsprogs kmod-fs-ext4 kmod-usb3 kmod-usb2 kmod-usb-storage 隨后使用ext4格式,重新初始化U盤:#注意這一步會清掉U盤上現有的所有內容mkfs.ext4 /dev/sda1 接著將U盤設置為路由器啟動后自動加載: block detect > /etc/config/fstab uci set fstab.@mount[0].enabled='1' && uci set fstab.@global[0].check_fs='1' && uci commit /sbin/block mount && service fstab enable
這時候可以使用mount命令檢查一下U盤是否加載成功(不需要重啟),如果輸出信息中,通常是在最后一行,如果有類似下面信息表示U盤加載成功了:
/dev/sda1 on /mnt/sda1 type ext4 (rw,relatime,data=ordered)
在我實驗的時候,有一個U盤無論如何無法自動加載成功,猜測同U盤型號或者具體硬件及OpenWRT版本的支持有關系。就不去深究原因了,碰到這種情況可以使用啟動腳本的方式解決,首先執行一次mkdir /mnt/sda1,然后在/etc/rc.local文件最后一行增加:
mount /dev/sda1 /mnt/sda1
以后重啟將會自動加載U盤。
這一步對于新款路由器實在不是事兒,使用opkg一條命令就搞定:
opkg install git
對于我這款老路由器來講是個大麻煩,因為這款WND3700這款路由器只有4M的FLASH,相當于硬盤的存儲空間。而git軟件包壓縮之后是4.3M,完全盛不下。 這時候剛才安裝的EXT4格式的U盤就起作用了,我使用手工安裝的方式把git安裝到U盤上,這樣多大的軟件包都不算問題了。 首先下載git軟件包:
cd /mnt/sda1/ wget http://openwrt.proxy.ustclug.org/releases/18.06.0/packages/mips_24kc/packages/git_2.16.3-1_mips_24kc.ipk
注意下載路徑是跟你所使用的路由器版本有關的,比如上面的下載地址表示OpernWRT18.06.0版本,跑在mips_24kc的芯片上。根據這些信息,你要尋找自己路由器可用的軟件包,平常這件事情是由opkg幫你做的。 下載完成后,手工解壓取出文件:
tar xzvf git_2.16.3-1_mips_24kc.ipk#上面的解壓完成通常會出來3個文件,我們只使用其中的data.tar.gz文件。mkdir ipkscd ipks tar xzvf ../data.tar.gzcd ..# 刪除3個解壓出的臨時文件rm control.tar.gz data.tar.gz debian-binary
所有的文件都保存在/mnt/sda1/ipks/usr路徑下,我們還需要手工完成安裝,才能夠運行:
ln -s /mnt/sda1/ipks/usr/bin/git /usr/bin/ ln -s /mnt/sda1/ipks/usr/bin/git-receive-pack /usr/bin/ ln -s /mnt/sda1/ipks/usr/bin/git-upload-archive /usr/bin/ ln -s /mnt/sda1/ipks/usr/bin/git-shell /usr/bin/ ln -s /mnt/sda1/ipks/usr/bin/git-upload-pack /usr/bin/ ln -s /mnt/sda1/ipks/usr/lib/git-core/ /usr/lib/ ln -s /mnt/sda1/ipks/usr/share/git-core/ /usr/share/
此時git已經可以使用了。接下來我們建立工作目錄:
mkdir /mnt/sda1/prjs ln -s /mnt/sda1/prjs/ /
/prjs目錄是我們的主要存儲目錄。因為路由器只有一個root賬號,也就不用考慮額外的權限問題。 今后所有的git倉庫,都可以在/prjs路徑下另外建目錄來保存。我們來建立一個測試倉庫來驗證工作是否正常:
mkdir /prjs/testcd /prjs/testgit init --bare
好了,至此路由器上的所有準備都已經完成。今后增加新的git倉庫,使用新的倉庫名稱,重復上面最后一個建立test倉庫的操作就可以。
回到我們的工作電腦上,隨意建立一個工作目錄,測試路由器上的git倉庫是否工作正常,下面假設我們路由器的IP地址為192.168.1.1,請修改成自己路由器的正確地址。
mkdir testgitcd testgit git init .echo "test information" > abc.txtecho "測試信息" > abc1.txt git add . git commit -m "something new"git remote add origin root@192.168.1.1:/prjs/test/ git push --set-upstream origin master
最后的git push執行后,需要輸入路由器root賬號密碼,隨后如果顯示類似下面信息,就表示成功了:
Counting objects: 2, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 231 bytes | 231.00 KiB/s, done. Total 2 (delta 0), reused 0 (delta 0) To root@192.168.1.1:/prjs/test/ 570db28..5ab2627 master -> master
如果不希望每次git push都輸入路由器密碼,可以把自己電腦的公鑰存儲到路由器備案,以后就不需要輸入密碼了,首先拷貝公鑰到路由器:
scp ~/.ssh/id_rsa.pub root@192.168.1.1:~/
接著在路由器上執行:
cat id_rsa.pub >> /etc/dropbear/authorized_keys
可以使用ssh來測試是否生效,ssh root@192.168.1.1之后,如果不再要求輸入密碼直接登錄了路由器,表示自動驗證生效了。
“怎么將路由器改裝成git服務器”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。