Pages

Thursday, 30 April 2020

利用shadowsocks-vertx翻墙(不稳定,不建议使用)

在linux vps上。
首先安装gradle环境:
Gradle的运行需要依赖jdk8,所以在安装Gradle之前我们得先把jdk8装上。然后,
wget https://downloads.gradle.org/distributions/gradle-3.5-bin.zip

根据Gradle官方推荐,我们将安装包的内容解压至/opt/gradle路径。
mkdir /opt/gradle
unzip -d /opt/gradle/ gradle-3.5-bin.zip
cd /opt/gradle/
(/opt/gradle/里面有gradle-3.5/bin目录,bin目录里面有可执行文件gradle)

export PATH=$PATH:/opt/gradle/gradle-3.5/bin
echo 'export PATH=$PATH:/opt/gradle/gradle-3.5/bin' >> /etc/profile

gradle --version检查gradle是否安装完成,以及查看其版本号。

cd ~
git clone https://github.com/Bestoa/shadowsocks-vertx shadowsocks-vertx-by-Bestoa
cd shadowsocks-vertx-by-Bestoa
gradle distZip
(会在当前目录下,生成build目录)
cd build
cd distributions
distributions目录里面有一个shadowsocks-0.8.4.zip文件)
unzip shadowsocks-0.8.4.zip
cd shadowsocks-0.8.4
cd bin
(bin目录里面有可执行文件shadowsocks)
./shadowsocks --help
显示:
01 May 2020 13:11:24,804 INFO  Shadowsocks 0.8.3
Usage:
   -m crypto method
   -k password
   -p bind port(server)/remote port(client)
   -l local port
   -s server
   -S server mode
   -c config file
   -t timeout(unit is second)
   -h show help.

nano /etc/systemd/system/shadowsocks-vertx-by-Bestoa.service
cat /etc/systemd/system/shadowsocks-vertx-by-Bestoa.service
[Unit]
After=network.target

[Service]
ExecStart=/root/shadowsocks-vertx-by-Bestoa/build/distributions/shadowsocks-0.8.4/bin/shadowsocks -S -p 3289 -k mypassword -m aes-256-cfb 
Restart=always

[Install]
WantedBy=multi-user.target

然后运行:
systemctl start shadowsocks-vertx-by-Bestoa
systemctl enable shadowsocks-vertx-by-Bestoa
服务器端搭建完成。

至于客户端,兼容各大平台下的ss客户端程序。把4个参数填入即可。

mtcp,网络加速工具

originally forked from wsmlby/mtcp, disperse your network transfer over multi sockets, thus improve network speed if you get per-connection speed limit.

mtcp module for disperse your network transfer over multi sockets, thus improve network speed if you get per-connection speed limit. Otherwise you will too soon comsume too many connections and can not connect any more.
mtcp module was originally forked from wsmlby/mtcp, with several patches to make it easier to use and stable.

usage


mtcp will forward a remote port on a server to a local port on your machine via multi sockets:
Applications <--> local:local_port <-- --="" multi="" sockets=""> host:host_port <--> host:remote_port
Now you can use local_port on your machine as using remote_port on a server.
For example, you can open a ssh tunnel on you server (ssh to localhost), then use mtcp to forward it to your local machine, and now get a socks5 proxy at localhost:local_port.

setup

configuration

This module is still under development. You must provide a config.json at mtcp directory:
{
    "host":"you_host",
    "host_port":"host_port",
    "remote_port":"remote_port",
    "local_port":"local_port",
    "somaxconn":10
}

host has been tested against IPv6 onlyhost_port is used by mtcp itself.
Right now mtcp will create somaxconn sockets for a single connections. So you would like to increase your max files open limit and max tcp connection limit on both server and client.

increase max connection limit

Linux

edit /etc/security/limits.conf and add lines like
username soft nofile 65535
username hard nofile 65535

To change limits for any user(except root), you could replace username with *, but you must specify root for changing limits for root user.
You may also want to add something like ulimit -n 10240 to your /etc/profile

change max cocurrent connection

use sudo sysctl -w net.core.somaxconn=65535

OS X

increate max open files
$ sysctl -a | grep files
kern.maxfiles = 12288
kern.maxfilesperproc = 10240
kern.maxfiles and kern.maxfilesperproc were small numbers, they need to be increased:
$ sudo sysctl -w kern.maxfiles=12288
$ sudo sysctl -w kern.maxfilesperproc=10240
after this, you can increase your account’s limit by ulimit -n:
$ ulimit -n 10240
increate max sockets
$ sysctl -a | grep somax
kern.ipc.somaxconn: 2048
and
$ sudo sysctl -w kern.ipc.somaxconn=2048
You may also want to add something like ulimit -n 10240 to your /etc/profile

Port Forwarding

use
node local.js
on client (the host you can access)
and
node server.js
on server (the other end).

Known issues

This module is not stable yet.
Right now mtcp has some bugs causing memory leaks. If you can help, feel free to send pull requests.
mtcp will release unused sockets for a timeout. So it may hold many sockets at the same time (maybe thousands). It will release them after a period of time. I hope this could be fixed soon.
mtcp disperse data and re-assemble then on remote server. So it would comsume much CPU time if you set a big value for somaxconn, and won't increase speed any more.

Warnning

Don't abuse this package to get much more bandwidth than yourself need like massive downloading or provide service to others.

vpncp


Freeradius VPN Control Panel
说明:
初版BUG比较多,语法比较粗糙,管理部分由于没时间,暂时还没写,先扔出用户版,欢迎提意见。
基于YZS.ME的freeradius的模块制作。
使用:
在你的Freeradius Server上面搭建WEB环境可以是Nginx+php+mysql也可以是其他的,具体看爱好。
更改config.php文件为你freeradius的mysql帐号密码,然后正常访问即可。
注意:
可能会存在BUG,毕竟我只是做了简单的正则匹配,部分可能会存在XSS等漏洞。
大牛不要嘲笑我,就是我学习PHP尝试做的一个东西。
版权:
照样的没有版权,但是请不要加上你的东西就说你的。
最后:
提问题地方 https://www.cxsir.com/guestbook
frm https://github.com/mixuan121/vpncp

tenon vpn for ios


1.1 去中心化VPN业务网络
1.1.1 传统VPN服务
常规VPN服务如下图所示: 用户端将请求数据加密后,直接发送给VPN-Server,VPN-Server通过协商好的秘钥解密出用户的请求包,然后请求Internet的数据,Internet返回数据包后,再通过协商好的秘钥加密数据,然后返回给用户。 这里存在严重的隐私安全问题,因为VPN-Server可以获取这个用户的所有信息,包括传输过程中的隐私数据,最基本的就是用户的IP地址完全暴露,其访问的所有数据也会绑定这个IP地址,用户的隐私对于VPN-Server厂商完全暴露。
1.1.2 TenonVPN
TenonVPN业务整体组网如图所示:
TenonVPN业务网络的构建分为两个部分,一个是路由网络,一个是VPN代理服务网络,在TenonVPN中,所有通信透视通过账号地址进行,包括P2P网络节点间的通信,每个业务节点都有自己的账号地址,账号地址在Tenon中是完全匿名的。
同时为了保证IP地址不被暴露,TenonVPN增加了路由网络,用户的请求包通过加密后通过路由网络随机中转多次后到达VPN服务网络,然后通过随机选择VPN服务节点,VPN服务节点通过访问Internet,并将返回数据加密后返回到路由网络并随机性的路由后返回给用户节点。
这个过程中,路由路径是随机性的,访问的VPN服务会在用户当前会话随机选择好多个服务节点,协商秘钥,这个协商都是通过路由中转进行,VPN服务除了知道匿名账户地址和公钥外,无法获取用户的IP信息等,从而保证用户隐私。协商好秘钥,用户就可以通过指定的VPN服务账户地址,然后通过随机路由将包送达指定节点,完成VPN服务的整个通信过程。
1.1.3 智能路由
VPN通信的整个过程,会通过智能路由网络,智能路由解决了VPN通信的几个核心问题:
1) 隐藏VPN客户的真实地址,用户的每一个session都是通过随机路由,VPN服务厂商完全无法将数据绑定到现实世界的每一个真实地址上。
2) 智能路由的接入,可以让用户PC,MAC成为智能路由的节点,也就是不同国家,地区的用户可以彼此通过节点相互访问不同地区的Internet,这很容易的就避免了网络运营商的屏蔽。同时VPN业务网提供了强大的网络穿越能力,可以让不同子网的用户进行直接消息透传。
3) 通过区中心化网络的通信质量,选择最佳通信路劲,比如越南用户访问北美的Internet,其最优路径并不是直接通过北美的VPN服务器,而是通过新加坡的节点,然后再转到北美节点,其性能会提升50%左右。
4) 有效的利用用户PC,MAC资源,并且在通过Tenon Coin激励方式,让接入节点享受区中心世界的经济福利。
1.1.4 挖矿和带宽证明
TenonVPN用户选择了指定账号地址的VPN服务,并通过这个账号地址的节点上网,期间必然产生流量,客户端和VPN服务端都会定时对这个流量进行监控和统计,比如达到10M就对这个事实创建一个合约,服务端签名后发送给客户端,客户端验证并确认使用了10M流量则对这个合约进行二次签名,双方签名验证后将这个共识存入本地业务链。
当达到一定程度(比如约定到了或者时间到了),将这个共识合并并双方签名验证后,提交到主链进行真正的交易。交易通过主网的共识结算,即对这些交易进行了记账,VPN服务厂商或者提供资源的用户即获取激励,这个过程其实就是一个挖矿行为。
在用户选择VPN提供商时,会在主链锁定自己的余额,用于支付流量。

Electron Sample Apps

This repository contains Electron sample apps to illustrate the usage of Electron APIs.
These sample apps are migrated from nw-sample-appschrome-app-sample and chromium extensions examples.
All samples are test on Electron v1.6.11.

How to run apps

  1. Install Electron via npm install -g electron.
  2. Run the sample via electron /.
If you want to know more about Electron app's development, please refer to the official docs.
------

Setup Electron on Ubuntu

Install nodejs on Ubuntu

# install node
$ apt-get install -y curl
$ curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
$ sudo apt-get install -y nodejs

Install tape-run.

# install tape-run
npm i -g tape-run

Checking what’s missing

# checking missing dependencies
root@8aabd4ac0ce8:/# /usr/lib/node_modules/tape-run/node_modules/browser-run/node_modules/electron-stream/node_modules/electron-prebuilt/dist/electron --help
/usr/lib/node_modules/tape-run/node_modules/browser-run/node_modules/electron-stream/node_modules/electron-prebuilt/dist/electron: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

Install missing dependencies

# install missing dependencies
apt-get install -y libgtk2.0-0 libnotify-bin libgconf-2-4 libnss3 xvfb

Start xvfb server

# start xvfb server
export DISPLAY=':99.0'
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &

Start tape-run

# start tape-run
$ root@8aabd4ac0ce8:/# echo "console.log('yo'); window.close()" | tape-run
yo
相关帖子:https://briteming.blogspot.com/2020/04/v2milk.html

V2Milk

V2Ray定制客户端 For Mac.

特点

  • 使用Electron编写
  • 完全开源,真实的开源,你不止能下载到README.md
  • 可对接V2raySocks插件

使用方式

  • 请修改 APP/assets/js/config.js 里面的对应项目!

使用截图

 

编译方式

electron-packager . V2Milk --win --out App --arch=x64 --overwrite --app-version=0.2 --asar --ignore=extra/ --extra-resource=extra/
from https://github.com/rankjie/V2Milk

EwoMail是基于Linux的企业邮箱服务器

它集成了众多优秀稳定的组件,是一个快速部署、简单高效、多语言、安全稳定的邮件解决方案.
http://www.ewomail.com

1.06更新说明

更新了部分组件,优化了安装方式,优化了内存占用,小内存运行更快更稳定。
将使用nginx作为默认web组件,删除了webmail的默认固定logo
更多配置和详细信息请参考文档

EwoMail

EwoMail是基于Linux的开源邮件服务器软件,集成了众多优秀稳定的组件,是一个快速部署、简单高效、多语言、安全稳定的邮件解决方案,帮助你提升运维效率,降低 IT 成本,兼容主流的邮件客户端,同时支持电脑和手机邮件客户端。

集成组件

Postfix:邮件服务器SMTP
Dovecot:IMAP/POP3/邮件存储
Amavisd:反垃圾和反病毒
LNAMP:,nginx,mysql,php
EwoMail-Admin:WEB邮箱管理后台
Rainloop:webmail

安装环境

centos6/7系统,服务器需要干净环境,全新安装的系统。
最低配置要求
CPU:1核
内存:1G
硬盘:40G

检查swap

安装前需要swap缓存,请务必先检查swap是否已经启动。

手动安装(centos6)

下载并重新命名为ewomail.zip
解压安装
unzip -o ewomail.zip
cd EwoMail/install
#需要输入一个邮箱域名,不需要前缀,列如下面的ewomail.cn
sh ./start.sh ewomail.cn

centos7

yum -y install git
cd /root
git clone https://github.com/gyxuehu/EwoMail.git
cd /root/EwoMail/install
#需要输入一个邮箱域名,不需要前缀,列如下面的ewomail.cn
sh ./start.sh ewomail.cn

文档教程

安装和文档教程

邮箱后台

ewomail-admin

webmail

webmail

安装或使用过程遇到问题