一、vultr能夠用微信或支付寶充值,方便。好像推薦別人用還能掙美分,懶得弄了,參加了一個充10刀送50刀的活動,感受實惠(實際用時感受有點小貴)。html
二、註冊登陸後,控制面板上billing可查看餘額。servers中可部署操做系統,我部署了一個最便宜的Centos7(能夠部署多個,我部署完查看餘額少了1美分)linux
三、部署的server名最右邊有三個點,點擊後的菜單中有View Console,是一個運行在瀏覽器中的Consol。(點開部署的server,能夠找到用戶名root和密碼),登陸View Console後進入了遠程的centos7系統中了。golang
四、輸入uname -a 無效; 輸入:file /bin/ls 有了x86-64字樣 ; 輸入cat /etc/os-release,有了centos 7的字樣web
五、輸入yum 或wget 或 rpm 或vi (在vi中用 :q 退出)都有,OK!shell
六、直接 yum install golang 安裝成功。 輸入go version 查看go版本。輸入whereis go 和whereis golang 查看安裝位置windows
七、從本地windows向centos7傳文件,看了下xshell 收費。仍是用putty (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html),安裝運行.centos
安裝putty目錄中還有個PuTTygen ,首先用它生成(運行後晃動鼠標生成)SSH key (https://www.vultr.com/docs/how-do-i-generate-ssh-keys/),瀏覽器
而後點save private key,再將public key的所有內容複製server的SSH key中保存。用putty鏈接後發現仍是不能上傳下載文件,還要用安裝WinSCP或者Filezilla。感受putty與View Console沒區別。忽然發現putty目錄中有psftp ,運行後按提示open ,鏈接成功,可在遠程用ls cd 等命令查看了。微信
八、在psftp中,運行 get xxx 就將xxx 從遠程下載到psftp所在目錄中了。將如下代碼保存爲main.go,並放到psftp目錄中ssh
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", IndexHandler) http.ListenAndServe(":9090", nil) } func IndexHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "hello world!!!") }
執行 put main.go,上傳到了遠程的/usr/bin/main.go;而後執行go run main.go 不行。
九、用liteide將上面的main.go交叉編譯爲linux64程序,名爲gohttphello。再用psftp上傳後,用 chmod +x gohttphello 加上執行權限,
用 ./gohttphello 運行,提示Text file busy , 先用yum install psmisc 來安裝 fuser ,而後 fuser gohttphello 無效果。從新./gohttphello無效
十、從新用psftp上傳 put main.go ,而後在putty中 go build -o gohello main.go ,再./gohello ,看到程序運行了(我在代碼中加一句控制檯輸出),但經過瀏覽器遠程沒法訪問。
十一、經過View Console執行 firewall-cmd --state ,顯示防火牆running ;用systemctl stop firewalld.service ,而後http://X.X.X.X(遠程IP),終於成功顯示出hello world!!!
十二、最後:用systemctl start firewalld.service 重啓防火牆 .用如下命令開放9090端口
輸入 nohup gohello & 使程序在後臺運行
用 ps a 查看當前終端下的全部進程信息,包括其餘用戶的進程。
用kill -9 PID數字 結束進程
firewall-cmd --get-active-zones (無顯示,應該是zone爲空) firewall-cmd --zone=public --add-port=9090/tcp --permanent (永久開放9090端口) firewall-cmd --reload (重啓防火牆) firewall-cmd --query-port=9090/tcp (查看端口是否開放)
參考:(一併致謝)
http://www.javashuo.com/article/p-quuijtaa-dc.html
http://www.javashuo.com/article/p-bpvpzhbc-et.html
http://www.javashuo.com/article/p-hnsvtled-em.html
https://blog.csdn.net/bihailan123/article/details/80067663
http://www.javashuo.com/article/p-yerqqdxp-eb.html
https://blog.csdn.net/iw1210/article/details/16862147
https://blog.csdn.net/Evan_QB/article/details/79811949
http://www.javashuo.com/article/p-ooekqyac-hk.html