免费SS
SS账号 更新时间:2024-06-03 12:15:55
所有账号均来自互联网,非盈利目的,仅供大家交流学习使用,出现一切问题本站作者概不负责。
本站不提供任何收费服务,不推荐任何收费机场,谢谢大家的支持。
资源存在一定时效性,本站不保证全部可用,请自行验证后使用。为了保护账号不被滥用,请在下方输入计算结果后再查看。
账号的使用方法您可以参考:Shadowsocks 在Windows上的使用及设置方法
SS账号 更新时间:2024-06-03 12:15:55
所有账号均来自互联网,非盈利目的,仅供大家交流学习使用,出现一切问题本站作者概不负责。
本站不提供任何收费服务,不推荐任何收费机场,谢谢大家的支持。
资源存在一定时效性,本站不保证全部可用,请自行验证后使用。为了保护账号不被滥用,请在下方输入计算结果后再查看。
账号的使用方法您可以参考:Shadowsocks 在Windows上的使用及设置方法
1
想请问下为什么从剪贴板导入URL这个功能有时候用不了?
匿名
这里粘贴过长的脚本好像会出问题。
匿名
生成rust版shadowsocks配置文件的nodejs脚本。支持多个免费ss列表。
需要安装cloudscraper geoip-lite jsdom request request-promise
#!/usr/bin/env node
const cloudscraper=require('cloudscraper')
const {JSDOM}=require("jsdom")
const request=require("request-promise")
const assert=require("assert").strict
const geoip=require('geoip-lite')
const dns=require('dns')
async function dns_lookup(x){
return new Promise((resolve,reject)=>dns.lookup(x,(err,address,family)=>err===null?resolve(address):reject(err)))
}
function is_ss(x){
return x.slice(0,5)==='ss://'
}
async function ss2json(ss){
const str=Buffer
.from(ss.slice(5),'base64')
.toString('ascii')
const xs=str.split('@')
assert.equal(xs.length,2)
const [a,b]=xs
const as=a.split(':')
assert.equal(as.length,2)
const bs=b.split(':')
assert.equal(bs.length,2)
const address=await dns_lookup(bs[0])
return {address:address,port:Number(bs[1]),password:as[1],method:as[0],country:geoip.lookup(address).country}
}
async function youneed(){
const x=await cloudscraper.get('https://www.youneed.win/free-ss')
const document=new JSDOM(x).window.document
return Array
.from(document.querySelectorAll("#post-box > div > section > table > tbody > tr"))
.map(x=>Array
.from(x.children)
.map((x)=>x.innerHTML))
.map(x=>new Promise(resolve=>resolve({address:x[0],port:Number(x[1]),password:x[2],method:x[3],country:x[5]})))
}
async function viencoding(){
const x=await request("https://viencoding.com/ss-ssr-share")
const document=new JSDOM(x).window.document
return Array
.from(document.querySelectorAll(".col-md-8 > .markdown-preview > code"))
.map(x=>x.innerHTML)
.filter(is_ss)
.map(ss2json)
}
const providers=[
youneed,
viencoding,
]
async function protect(default_v,promise){
return new Promise(resolve=>promise.then(resolve).catch(err=>resolve(default_v)))
}
async function await_array(xs){
return xs.length===0?[]:[await xs[0]].concat(await await_array(xs.slice(1)))
}
Array.prototype.map_async=function(f){
const result=[]
for(let i=0;iprotect([],x()))
const xs1=(await xs0)
.flat()
.map_async(x=>protect(null,x))
return (await xs1)
.filter(x=>x!==null)
}
getall()
.then(x=>console.log(JSON.stringify({local_address:"127.0.0.1",local_port:1080,servers:x.filter(x=>x.method!=='aes-128-ctr'&&x.country!='RU')})))
.catch(console.error)
匿名
改一下那些脚本就可以自动生成ss的订阅。
匿名
rust版ss配置文件自动生成脚本。
需要安装的包:cloudscraper jsdom request
#!/usr/bin/env node
require('cloudscraper').get('https://www.youneed.win/free-ss').then((x)=>{let document=new (require("jsdom").JSDOM)(x).window.document;console.log(JSON.stringify({local_address:"127.0.0.1",local_port:1080,servers:Array.from(document.querySelectorAll("#post-box > div > section > table > tbody > tr")).map((x)=>Array.from(x.children).map((x)=>x.innerHTML)).map((x)=>({address:x[0],port:Number(x[1]),password:x[2],method:x[3],country:x[5]})).filter((x)=>x.method!=='aes-128-ctr'&&x.country!='RU')}));},console.error)
匿名
为啥没有二维码,真的很不方便
zzZ
多谢大佬
cedoo
import cfscrape
from lxml import html
#get ss from web
def getFreeSS():
youneedSSUrl = "https://www.youneed.win/free-ss"
scraper = cfscrape.create_scraper() # returns a CloudflareScraper instance
# Or: scraper = cfscrape.CloudflareScraper() # CloudflareScraper inherits from requests.Session
rsponse = scraper.get(youneedSSUrl)
# print(rsponse.text) # => "..."
if (rsponse.status_code == 200):
responseHtml = rsponse.text
tree = html.fromstring(responseHtml)
ssservers = tree.xpath("//section[@class='context']/table/tbody/tr")
ssserversCount = len(ssservers)
servers = [];
for s in range(ssserversCount):
serverObjAttrs = tree.xpath("//section[@class='context']/table/tbody/tr/td/text()")
startIndex = 6*s
ip = serverObjAttrs[startIndex+0]
port = serverObjAttrs[startIndex+1]
passwd = serverObjAttrs[startIndex+2]
method = 'aes-256-cfb'# serverObjAttrs[startIndex+3] #aes-256-cfb or
tm = serverObjAttrs[startIndex+4]
country = serverObjAttrs[startIndex+5]
sjson = {"server": ip, "server_port": int(port), "password": passwd, "method": method, "remarks": ip+"-"+country}
servers.append(sjson)
return servers
else:
return []
1
能否增加一个 SS 的URL链接, 软件有从剪贴板导入URL的功能. 用起来方便一些.
匿名
加个二维码吧
匿名
为了方便大家 加个二维码吧
匿名
chrome 早上打不开。。。
IE 目前可以进来评论
chrome 一直////
在访问 youneed.win 之前检查浏览器。
这个过程是自动的。您的浏览器很快就会重定向到您要求的内容。
请允许最多5秒......
Cloudflare
Ray ID的DDoS保护:4f51a62d5b2420b2
匿名
没有二维码不方便
匿名
非常感谢!支持一下!
匿名
导出SS:
console.info([].filter.call(document.querySelectorAll('#post-box table>tbody>tr>td:last-child'),e=>e.children.length===1&&e.nodeName==='TD').map(e=>e.children[0].href).join('\n'))
匿名
为什么没有二维码了,好不方便
匿名
请教手机端,怎么看完整的信息,不能左右上下移动?
放牧的风
@匿名 可以横屏试试
匿名
Rust版脚本
console.log(JSON.stringify({local_address:"127.0.0.1",local_port:1080,servers:Array.from(document.querySelectorAll("#post-box > div > section > table > tbody > tr")).map((x)=>Array.from(x.children).map((x)=>x.innerHTML)).filter((x)=>x[5]!=='RU').map((x)=>({address:x[0],port:Number(x[1]),password:x[2],method:x[3],C:x[5]})).filter((x)=>x.method!=='aes-128-ctr')}))
hamflx
Copy button
[].filter.call(document.querySelectorAll('.context tbody tr'), (e) => e.children.length === 6).map((e) => [e.children[3].textContent, e.children[2].textContent, e.children[0].textContent, e.children[1].textContent, e]).map(f => ({ u: 'ss://' + btoa(f[0] + ':' + f[1] + '@' + f[2] + ':' + f[3]), p: f[4]})).forEach((o) => { var a = document.createElement('a'), p = document.createElement('td'), inp; a.href = o.u; a.textContent = 'copy'; a.onclick = () => { inp = inp || document.createElement('input'); inp.value = o.u; document.body.appendChild(inp); inp.select(); document.execCommand('Copy'); }; p.appendChild(a); o.p.appendChild(p); });
hamflx
console.log([].filter.call(document.querySelectorAll('.context tbody tr'), (e) => e.children.length === 6).map((e) => [e.children[3].textContent, e.children[2].textContent, e.children[0].textContent, e.children[1].textContent, e.children[5].textContent]).map(f => f[4] + ' ss://' + btoa(f[0] + ':' + f[1] + '@' + f[2] + ':' + f[3])).join('\n'));