CentOS 7 下编译并安装 shadowsocks-libev 并启用 obfs 混淆

本文以 Vultr 购买的 CentOS 7 主机为例,详细介绍了编译并部署 shadowsocks-libev的方法,并分别说明了不使用 obfs 和使用 obfs 混淆的安装配置方法。建议以密钥的方式绑定主机并以此登录,注意保护好自己的密钥。注:示例命令均是在 root 用户下执行的。

准备工作

首先,更新系统:

1
yum update

为了防止被人暴力扫描破解登录密码,我们先对 Vultr 自动生成的密码进行重置:

1
passwd root

这里我个人使用了 256 位随机密码,包含特殊字符。

另外也可以安装 fail2ban 来禁止掉反复尝试登录的ip地址:

1
yum install fail2ban

启用 fail2ban :

1
systemctl enable fail2ban

Read More

搭建利用 obfs4 混淆的 Tor Bridge 的过程

本文最后更新于 2020 年 4 月 9 日


本文以 Debian 10 和 Ubuntu 18.04 为例,说明如何搭建 Tor Bridge。

请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行 Tor bridge 的搭建,并默认已按初始化配置文章对服务器进行了必要的安全配置。


Tor 的目的在其匿名性,众所周知,如果在特殊的网络环境下,想连接到 Tor 网络可能需要一个网桥,一般的网桥还不行,因为会被检测到 Tor 流量,ip 直接被 ban 掉。

Tor 的节点分为三种

  1. 作为出口节点,Exit Relays 。出口节点实际上是暴露于互联网的,相当于最后真正去访问站点的那个人。

  2. 在 Tor directory 中列出的中继节点,叫 Middle Relays 。IP 很可能被检测到,很可能被屏蔽。

  3. 在 Tor directory 中不列出的中继节点,叫 Bridges ,也就是我们这篇文章重点介绍的节点。它可以帮助你绕过网络运营商对于 Tor 的封锁。

混淆插件

在过去的几年中,审查者开始可以屏蔽即使使用了 Bridges 的 Tor clients 。故,在严格审查的环境下,我们应该使用混淆插件进行规避,比如 meek,比如 obfs4,在这里,将着重介绍如何使用 obfs4 。

VPS 对于 Tor 的支持

并非所有 VPS 商都允许使用 Tor,所以应该事先了解政策支持情况,下面表格列出了常用的 VPS 支持情况:

VPSBridgesRelayExit
DigitalOceanYESYESNO
VultrYESYESNO
LinodeYESYESAmbiguous

获取更多信息,可以参考支持 / 封禁列表

Read More

树莓派定时控制散热风扇开关

硬件上

一、思路: GPIO 给三极管基极信号

使用三极管组成开关电路。以 S9013 为例,S9013 是 NPN 型三极管。关于 NPN 型三极管,S9013 的特性如下:

NPN 基极高电压,极电极与发射极短路。低电压,极电极与发射极开路。也就是不工作。

二、接线

相关电路图如下:

S9013

连接电路图

连接引脚图

软件上

一、GPIO 简单使用

首先看一些例程:

1.GPIO 输出

1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-  
import RPi.GPIO as GPIO
import time
# BOARD 编号方式,基于插座引脚编号
GPIO.setmode(GPIO.BOARD)
# 输出模式
GPIO.setup(11, GPIO.OUT)

while True:
GPIO.output(11, GPIO.HIGH)
time.sleep(1)
GPIO.output(11, GPIO.LOW)
time.sleep(1)

Read More

在 Ubuntu 上搭建饥荒专用服务器(含洞穴)

最后更新于 2019 年 1 月 10 日

本文以 Ubuntu 16.04,64 位系统为例,介绍如何搭建 Don’t Starve Together 联机服务器。

准备工作

划分 swap 分区

如果您需要改变 swap 大小,参照这篇文章。

安装依赖

1
2
3
4
5
dpkg --add-architecture i386
apt update
apt dist-upgrade -y
apt autoremove -y
apt install screen vim lib32gcc1 lib32stdc++6 libcurl4-gnutls-dev:i386 -y

添加并切换用户

1
2
adduser dst
su - dst

Read More

VB.NET 下载文件及显示进程

简单的下载

1.创建 WebClient 类,再输入要下载的资源 url 地址还有本地保存路径即可。

1
2
Dim DownloadClient As New Net.WebClient() 
DownloadClient.DownloadFile(yoururladdress,yourfileaddress)

2.使用 DownloadFile 的方法下载文件,指定文件的下载地址和本地路径,和超时时间。

1
My.Computer.Network.DownloadFile(yoururladdress, yourfileaddress, False, 500)

具有进度提示的下载

以 VS2015 为编译环境,举例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Imports System.Net
Public Class Main

Dim DownloadClient As New WebClient

Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler DownloadClient.DownloadProgressChanged, AddressOf ShowDownProgress
AddHandler DownloadClient.DownloadDataCompleted, AddressOf DownloadDataCompleted
End Sub

Private Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button.Click
DownLoadFiles()
End Sub

Private Sub DownLoadFiles()
DownloadClient.DownloadFileAsync(New Uri(yourlink), (yoursaveaddress))
End Sub

Private Sub ShowDownProgress(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
Invoke(New Action(Of Integer)(Sub(i) ProgressBar.Value = i), e.ProgressPercentage)
End Sub

Sub DownloadDataCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
MessageBox.Show("下载成功!", "提示", MessageBoxButtons.OK)
End Sub
End Class
Mastodon