Stunnel 使用筆記&提供一個在線加密代理和一個cygwin/Linux 免費公益ssh -D腳本
話說在網上閒逛,讀了數篇文章,關於Stunnel客戶端用作翻~強,於是在XP安裝了stunnel實現一下,
Linux我早已安裝,但沒使用,原因是沒有服務器,後來找到方式尋找免費服務器,現在已能在xp或Linux使用,以下為綜合心得,會以xp作為使用例子, Stunnel官網: http://www.stunnel.org
使用Stunnel,需要一個未牆的服務器,且支援Stuunel,服務器實現已知有如下方式
A) 購買VPS服務,自己搭建
B) 購買支援Stunnel的服務
C) 使用免費的服務
我的重點就是找尋免費的,呵呵, 首先在XP安裝Stunnel, 最新版本為4.38, 完成安裝,打開
C:\Program Files\stunnel\stunnel.conf ,最好使用Notepad++之類比較好的文本編輯器,
Windows 自帶的記事本實在太差, 找到 ;client = no 改為 client = yes , 行首的分號 “;”是Stunnel 的註解,如有就去掉, 再找到 ;[https] 改為
[https]
accept = 127.0.0.1:1984
connect = xxx.xxx.xxx.xxx:443
xxx.xxx.xxx.xxx 是服務器IP, 端口是443的, OK, 如何找到可用的IP呢? 如果不想動手,去李大師的
動~~態~~網, http:-//www_dongtaiwang_com, 需翻強上, 在頁面右下角有個叫 “当前IP “,
一 般都是台灣的,把IP填入stunnel.conf , 通常就可使用, 火狐5 + proxy selecter 插件, 已手動填入代理 http proxy 127.0.0.1 端口 1984 , SSL proxy 填入相同的, 也可使用PAC, 點擊最底的
Automatic Proxy Configuration URL, 填入http://autoproxy2pac.appspot.com/pac/puff
這就成了, 這方式是免折騰,但IP失效很快,且很多網站被李大師屏敝,只能作娛樂用途,呵呵, 作為
cmded的會員,怎會如此窩囊?
於是尋找免費代理,找出開放了443端口又能支援Stunnel代理,去那裡找? http://www.textproxylists.com/ 和 http://nntime.com/ 每天有大量代理發佈, 最先我是手動尋找, 但實在如大海撈針,浪費時間,搞了一會,幾乎要放棄了,轉念一想,何不使用腳本幫忙?
XP 裡我有安裝Cygwin,那是一個類似Linux的工作環境,Linux能執行的腳本通常Cygwin一樣能用,反之亦然, 於是針對nntime.com編寫了一個bash腳本, 代碼會調用另一perl腳本用來排除中國的代理,腳本會檢測443端口是否開放,這是主腳本
#! /bin/bash tempfile="$HOME/Stunnel_Proxy.$$" proxyfile="$HOME/StunnelProxy-$(date '+%Y%m%d').txt" trap "rm -f $tempfile $proxyfile _r.txt _s.txt" 2 for (( i=1 ; i<=8 ; i++ )) do url="http://nntime.com/proxy-list-0${i}.htm" curl -s "$url" | \ grep -Eo '[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' done > $tempfile while read line do nc -v -w 5 -z $line 443 > _r.txt 2>&1 if grep '^.*443[ \t](https)[ \t]open' _r.txt then echo "$line" >> $proxyfile else continue fi done < "$tempfile" rm -f r.txt for ip in $(<$proxyfile) do baned=$(geoip "$ip") if echo "$baned" | grep '[Cc]hina' > /dev/null 2>&1 then continue else echo "$baned" >> _s.txt 2>&1 fi done mv -f _s.txt $proxyfile isEmpty=$(file -b "$proxyfile") if [[ $isEmpty =~ empty ]] then echo "NO useful proxy." rm -f "$proxyfile" else echo "$proxyfile is made." fi rm -f "$tempfile" exit 0
腳本會調用curl,nc,grep,date命令, 接著是一個我已用了多年自己寫的perl腳本
名為geoip
#! /usr/bin/perl use strict; use warnings; use LWP::Simple; use File::Basename; my $name = basename($0); my $usage = "Usage:\t $name ip"; my $ip = $ARGV[0] || die "$usage\n"; my $url = "http://www.geody.com/geoip.php?ip=${ip}"; my $search = get($url) or die "Could not open $url: $!\n"; my @search = split /\n/, $search; my @location = grep /^IP:/, @search; my $location = join " ", @location; $location =~ s/<[^>]+>//g; print "$location\n";
把腳本放在SHELL搜尋執行命令的路徑就可以了, 完成後會生成一個StunnelProxy-日期.txt文件,裡面就是開放443端口的代理.
後來又針對http://www.textproxylists.com/寫了另一腳本, 這不需要調用PERL腳本了,我寫了一個SHELL函數代替,也是使用nc, grep, awk等一般LINUX工具
#! /bin/bash banned_ip(){ local ip url location ip=$1 url="http://www.geody.com/geoip.php?ip=${ip}" location=$(curl -s "$url" | awk '/^IP/{ gsub(/<[^>]+>/, "", $0);print }') echo "$location" } url="http://www.textproxylists.com/proxy.php?allproxy" tempfile="$HOME/temp.$$" proxylist="$HOME/proxylist-$(date '+%Y%m%d').txt" trap "rm -f $proxylist $tempfile _p.txt _q.txt" 2 curl -s "$url" | awk -F ":" '/^[0-9\.]+/{print $1}' >> "$tempfile" while read line ; do nc -v -w 5 -z "$line" 443 > _p.txt 2>&1 if grep '^.*443[ \t](https)[ \t]open' _p.txt > /dev/null 2>&1 then echo "$line" >> _q.txt else continue fi done < $tempfile for ip in $(cat _q.txt) do sleep 2 useful=$(banned_ip "$ip") if echo "$useful" | grep '[Cc]hina' > /dev/null 2>&1 then continue else echo "$useful" >> $proxylist fi done rm -f "$tempfile" _q.txt _p.txt IsEmpty=$(file -b $proxylist) if [[ "$IsEmpty" =~ empty ]] ; then echo "No useful proxy is found." rm -f "$proxylist" exit 5 fi echo "$proxylist is made." exit 0
今天以這個腳本下載的代理 http://pastebin.com/v5ZNrYW0
剩 下來的就是體力活了,手動以stunnel 測試這些IP,通常每天會有1~3是能用的, 本來想在代碼中加入調用lynx 和 stunnel自動測試,但有一技術上問題未能解決,就是有些是要密碼登錄的,有些是還沒搭建好,只有一個測試頁面,有些是SSL-VPN的登錄頁面,有 些出白頁,不知道怎樣排除這些服務器? 手動也不很費時,有時候好運氣第一個就能使用了
stunnel 翻強方式相當不錯,多平台,網上代理多如星數,加密,是極難封死的,值得一試,最後送上3個可用的IP,一個是美國,一個是香港,一個是泰國,香港的如你是敏感人士就最好只用來看TVB,呵呵
connect = 165.193.102.220:443
connect = 59.148.233.57:443
connect = 123.242.172.4:443
這三個我在無牆網絡下測試都能用 ,歡迎測試, 補充一點,很多免費代理都不支援HTTPS連線,這是美中不足,有時會有一兩個能支援的,比例比較低
原文:https://cmded.net/forum/index.php?topic=2807.0
本博客对Stunnel翻墙的介绍 http://igfw.net/archives/2297、 http://igfw.net/archives/3526 、 http://igfw.net/archives/3260
提供一個在線加密代理和一個cygwin/Linux 免費公益ssh -D腳本
https://klue.tk/ 在線代理一枚
ssh -D 腳本,網站半小時改密碼一次,連上的不受影響,腳本需調用plink , 需要自行安裝
#! /bin/bash host="178.18.17.111" user="999proxy_ssh" lport=7070 rport=22 url="http://www.999proxy.net/#" pw=$(curl -s "$url" | sed -n '/password:/{ n n n s/<[^>][^>]*>//g p }') plink "$host" -N -ssh -2 -P $rport -l "$user" -pw "$pw" -D $lport -v
原文:https://cmded.net/forum/index.php?topic=2808.0
本博客对999proxy的介绍:http://igfw.net/archives/3603