內網穿透&反向代理(奇技淫巧)

Motivation

我搭建內網穿透,主要是因為在阿里云租的服務器配置較低搀暑,考慮到如果把一些web service放在阿里云上面運算沥阳,可能提不起來速度,也會消耗較多的云服務器資源自点,使得我能同時部署的項目變少桐罕。所以需要將service搭在內網,然后通過外網的ip訪問內網的服務桂敛。內網穿透負責讓內網的service端口A映射到外網的監(jiān)聽端口B功炮,反向代理讓外網的訪問端口C能和監(jiān)聽端口B連上。
這里介紹一種快捷埠啃、輕便的方案死宣。雖然有一些不足,但是很適合在完全不懂原理的情況下操作碴开。
然而我以后可能會直接使用內網穿透&反向代理(重劍無鋒)的方案了毅该。

介紹

最初在網上試了很多博秫,nginx,ngrok眶掌,ssh挡育,都有坑。最終還是萬能的github解決了問題朴爬。
這個rproxy項目主要基于go語言編寫即寒。代碼簡短,理解原理召噩、實際使用上都非常方便母赵。但是我試過之后無法實現(xiàn)ssh穿透。
這個tunnel項目主要用c語言編寫具滴,代碼也很簡單凹嘲。可以實現(xiàn)ssh构韵。有個不足是周蹭,它無法指定公網的對外ip,即公網的端口是變化的疲恢,所以運行之后凶朗,還要去阿里云上面開放端口,也有點蠢显拳。
所以還是推薦直接采用這個方案內網穿透&反向代理(重劍無鋒)

下面分為3個部分

  • 安裝go語言
  • 使用rproxy
  • 使用tunnel

安裝go

  • 自動安裝
    最簡單的是用yum install golang棚愤,但我沒成功,提示說沒golang這個包萎攒,所以要手動安裝遇八。
  • 手動安裝
  1. 下包
    直接進golang官網下載無法成功矛绘,沒能連出去耍休。所以去這個中文站手動下載。
    下載之后解壓安裝货矮,目錄為/usr/local:tar -C /usr/local -xzf filename羊精,由于版本不同,所以filename改成自己下的名字囚玫。
  2. 配置環(huán)境變量
    vi /etc/profile在最后加上下面3行
export GOROOT=/usr/local/go #設置為go安裝的路徑
export GOPATH=/code/goDemo #默認安裝包的路徑
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

更新配置文件source /etc/profile

  1. 查看版本信息:go version喧锦,如果有輸出就是成功。
    golang成功安裝

使用rproxy做內網服務穿透

  1. 拉代碼:git clone https://github.com/ying32/rproxy.git
  2. 給權限:chmod a+x rproxy/*
  3. 編譯:
cd rproxy
go build
  1. 到了這里抓督。上面的代碼應該在服務端和客戶端上都執(zhí)行一遍燃少。

我們看一下服務端的runsrv.sh文件:vi runsrv.sh。內容為:

./rproxy --tcpport=8818 --httpport=43006 --mode="server" --vkey="DKiic1g3kY"
# --tcpport 是 服務端 對客戶端 監(jiān)聽的端口
# --httpport 是 服務端 向外 開放的端口
# --mode 啟動模式铃在,server
# --vkey 客戶端與服務端建立連接時校驗的加密key阵具,簡單的碍遍。

再看一下客戶端的runcli.sh文件:vi runcli.sh。內容為:

./rproxy --tcpport=8818 --httpport=8876 --mode="client" --svraddr="106._._._" --vkey="DKibg3kY"
# --tcpport 是 服務端 對客戶端 監(jiān)聽的端口
# --httpport 是 客戶端 向服務端 開放的端口
# --mode 默認為client
# --svraddr 為連接服務器的地址阳液,不需要填寫端口
# --vkey 客戶端與服務端建立連接時校驗的加密key怕敬,簡單的。

如果按我上述的端口設定帘皿,分別在客戶端和服務端運行程序东跪。
然后在其他機器用瀏覽器訪問106.\_.\_.\_:43006
就會先通過外網的43006端口,轉發(fā)到外網的8818端口鹰溜,再轉發(fā)到內網的8876虽填,達到了通過外網ip訪問內網8876端口上的服務的效果。

成功穿到內網的tensorboard

如果想讓終端關閉了曹动、進程還能繼續(xù)跑卤唉,可以使用nohup ./xxx.sh運行程序

利用tunnel做ssh映射

由于rproxy沒法做ssh,其他的普通ssh方法鏈接效果有點不好仁期,雖然能成功桑驱,但是還是有掉線的問題。
可以選擇編譯項目跛蛋,然后運行tunnel和tunneld熬的,項目作者也直接提供了編譯好的文件,在這里赊级,可以直接在服務器運行tunneld和在客戶端運行tunnel押框,兩個命令解決。

  • tunneld(服務器端)使用說明
    執(zhí)行 tunneld 文件
tunneld
Enter listening port(default 8877):8877
Enter connection password(default maqian.cc):maqian.cc
Port:8877, Password:maqian.cc
Listening...

這時 tunneld 已啟動成功理逊,等待客戶端連接橡伞。

  • tunnel(客戶端)使用說明
    執(zhí)行 tunnel 文件
tunnel
Enter server IP:xx.xx.xxx.xxx
Enter server port(default 8877):8877
Enter connection password(default maqian.cc):maqian.cc
Enter local port:22
Server IP:xx.xx.xxx.xxx, Server Port:8877, Password:maqian.cc, Local Port:22
Successfully connected, address: xx.xx.xxx.xxx:45915

這樣 tunnel 就連接服務器成功了,address是映射到公網的IP和端口晋被,通過訪問address的IP和端口就可以訪問內部網絡服務了兑徘。

客戶端連接服務器成功
登錄客戶端成功

其他

ssh反向代理()

參考:
https://www.cnblogs.com/kwongtai/p/6903420.html
https://blog.csdn.net/sinat_27774177/article/details/76474834

問題描述:要讓外網的機器C通過阿里云上的B能連到內網的A,配置如下所示:

機器 IP user pwd
局域網機器A 192.168.. student_docker xxx
阿里云機器B 106._._._ root yyy
  1. 先在A上操作:ssh -fCNR 43005:localhost:22 root@106._._._
    43005是指定B機器的端口羡洛,這里將B的43005和A的22映射
    ssh -R 43004:localhost:22 root@106._._._

  2. 登去B挂脑,查看狀態(tài)netstat -tnl
    在B上操作:ssh -fCNL *:43004:localhost:43005 localhost
    43004代表另一個映射,43005就是第一步指定的映射欲侮。

    在執(zhí)行ssh命令的時候崭闲,會讓輸入密碼,一個是遠程密碼威蕉,一個是內網密碼刁俭。

  3. 登去C,用ssh連接韧涨,ssh -p 43004 student_docker@106._._._
    輸入密碼xxx牍戚,成功登錄沙兰。

但是這種方式容易斷,然而我下載autossh又沒有成功翘魄,沒法開自動監(jiān)聽鼎天。

安裝ngrok實現(xiàn)內網穿透

參考:https://blog.csdn.net/truong/article/details/73250683

  1. 安裝依賴包
    yum install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ golang
  2. 下載,配置暑竟,編譯斋射,啟動服務端
# 克隆ngrok git倉庫,
git clone https://github.com/inconshreveable/ngrok.git

cd ngrok
# 設定變量
NGROK_DOMAIN="106._._._"

# 生成秘鑰
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "106._._._" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "106._._._" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

# 復制秘鑰
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key

# 編譯
make release-server
make release-client
# 服務端運行
bin/ngrokd -httpAddr=":8818"
  1. 啟動客戶端
mkdir ngrok
vi ngrok.cfg

# 輸入以下2行內容
server_addr: "106._._._:4443"
trust_host_root_certs: false

# 賦予權限
sudo chmod a+x ngrok
# 啟動客戶端但荤,將8080端口映射讓遠程監(jiān)聽
./ngrok -config=ngrok.cfg 8080
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末罗岖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子腹躁,更是在濱河造成了極大的恐慌桑包,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纺非,死亡現(xiàn)場離奇詭異哑了,居然都是意外死亡,警方通過查閱死者的電腦和手機烧颖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門弱左,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炕淮,你說我怎么就攤上這事拆火。” “怎么了涂圆?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵们镜,是天一觀的道長。 經常有香客問我润歉,道長模狭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任卡辰,我火速辦了婚禮胞皱,結果婚禮上邪意,老公的妹妹穿的比我還像新娘九妈。我一直安慰自己,他們只是感情好雾鬼,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布萌朱。 她就那樣靜靜地躺著,像睡著了一般策菜。 火紅的嫁衣襯著肌膚如雪晶疼。 梳的紋絲不亂的頭發(fā)上酒贬,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機與錄音翠霍,去河邊找鬼锭吨。 笑死,一個胖子當著我的面吹牛寒匙,可吹牛的內容都是我干的零如。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼锄弱,長吁一口氣:“原來是場噩夢啊……” “哼考蕾!你這毒婦竟也來了?” 一聲冷哼從身側響起会宪,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤肖卧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后掸鹅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塞帐,經...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年巍沙,在試婚紗的時候發(fā)現(xiàn)自己被綠了壁榕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡赎瞎,死狀恐怖牌里,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情务甥,我是刑警寧澤牡辽,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站敞临,受9級特大地震影響态辛,放射性物質發(fā)生泄漏。R本人自食惡果不足惜挺尿,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一奏黑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧编矾,春花似錦熟史、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至凹蜈,卻和暖如春限寞,著一層夾襖步出監(jiān)牢的瞬間忍啸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工履植, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留计雌,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓玫霎,卻偏偏與公主長得像白粉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鼠渺,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容