0x00 使用場景
最近遇到個項目需要走公網服務器的流量進行測試,不然waf會攔死,於是用別人的服務器搞了一上午,發現都沒法代理出來,按照大哥的說法是,如果別人做的事情只要1天,那你就花3天的時間去做,不可能做不好的,確實管用。走某個網絡的流量,只需要自己給自己開個代理即可,下面使用兩種代理方式做演示:
0x01 方法一
(1)設置好配置文件:下載后查看一下這兩個配置文件,修改配置文件的內容:
frps.ini
[common]
bind_port = xxxxA
frpc.ini
[common] server_addr = xx.xx.xx.xx server_port = xxxxA [plugin_socks5] type = tcp remote_port = xxxxB plugin = socks5 plugin_user = test plugin_passwd = test123
看好frps.ini的xxxxA是需要與frpc.ini中的xxxxA對應起來的,即:都需要是同一端口。你可以想象為,流量要通的話,需要從一個門進入,然后這條過道,得是另一個端口,也就是xxxxB。
而為了讓我們都使用這一條過道,配置代理后我們需要通過這條過道進行連接,所以remote_port就是我們連接的端口。server_addr就設置為自己的這台公網服務器的IP即可。
(2)同時在服務器運行:
./frps -c frps.ini
./frpc -c frpc.ini
(3)開啟代理后,我們在本機測試一下是否成功:
這些基礎的配置流程就不詳細講解了,然后我們使用火狐瀏覽器查看一下IP地址的話,就能發現自己本機已經開始走自己公網服務器的流量了:
0x02 方法二
使用ssh開啟代理:
ssh命令除了登陸以外還有三種常用的代理功能:
正向代理(-L):相當於iptable的port forwarding
反向代理(-R):相當於frp或者ngrok
socks5代理(-D):相當於ss/ssr指定本地“動態”應用程序級端口轉發。這通過分配一個套接字來偵聽本地端的端口(可選地綁定到指定的bind_address)來實現。每當與此端口建立連接時,該連接都會通過安全通道轉發,然后使用應用協議確定從遠程計算機連接到的位置。當前支持SOCKS4和SOCKS5協議,而ssh將充當SOCKS服務器。只有root可以轉發特權端口。動態端口轉發也可以在配置文件中指定。
建立隧道命令格式:ssh <參數> <代理模式> <偵聽端口>:<目標IP>:<目標端口> user@<sshserver> -p <ssh server port>
-C:壓縮傳輸,提高傳輸速度
-f:將ssh傳輸轉入后台執行,不占用當前的shell
-N:靜默連接,連接后看不到具體會話
-g:允許遠程主機連接本地用於轉發的端口
-L:本地端口轉發
-R:遠程端口轉發
-D:動態轉發(SOCKS 代理)
-p:指定ssh端口
前提條件,在上文中,假如我們的公網服務器只開放了22端口,我們就沒法再使用frp進行代理了。
(1)使用遠程端口轉發(反向代理),將公網服務器的22端口轉發出來:
ssh -gD 端口Port 用戶名@公網服務器IP
(2)proxifer設置一下代理服務器
(3)火狐訪問一下:
(4)使用完成記得reboot一下服務器,方便快捷,這樣就不會再有這個代理了:
以上就完成了兩種方式做代理,走自己公網服務器的流量,ssh的其他功能等我使用到的時候再記錄下來。
0x03 參考文章
參考鏈接:https://www.freebuf.com/articles/network/284921.html