在Ubuntu搭建饥荒专用服务器

由于很多教程只是老版本的教程,新版本饥荒有较大改变,所以写了这篇笔记短文,可供新手搭建服务器使用。

准备工作

需要知道的基本Linux操作

  • 删除文件命令 rm -f 文件名 将会强行删除文件,且无提示

  • 删除文件夹以及文件夹中的所有文件命令:rm -rf 目录名字其中:-r:向下递归删除 -f:直接强行删除,且没有任何提示

划分Swap分区

1.使用最常用的 free 命令来查看当前系统是否存在 Swap 交换分区

free -m

2.查看磁盘分区的空闲空间

df -h

3.创建Swap分区文件

dd if=/dev/zero of=/swapfile bs=1G count=1

或者

fallocate -l 1G /swapfile

4.设置Swap分区文件

chmod 600 /swapfile

mkswap /swapfile

5.启用交换分区文件

swapon /swapfile

6.开机挂载交换分区文件,使用 vi 或 nano 在 /etc/fstab 文件底部添加如下内容:

LABEL=SWAP-sda    /swapfile swap swap default 0 0

Read More

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

简单的下载

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

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

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

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

具有进度提示的下载

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

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

.NET中WebBrowser内核版本解决方案

方案一:更改网页META标签

例如使用IE9内核的特性,则可以在网页<head>标签中加入<meta http-equiv="X-UA-Compatible" content="IE=9" >

注意:这个标签必须加在<head>中其他CSS和JavaScript链接之前,但可以与<title>和其他<meta>成任意位置。

方案二:修改注册表

例如使用IE9内核的特性,可在注册表添加两个键值。

HKEY_LOCAL_MACHINE (和 HKEY_CURRENT_USER) >SOFTWARE > Microsoft > Internet Explorer > Main > FeatureControl > FEATURE_BROWSER_EMULATION

新建 → DWORD(32-位)值 yourprogram.exe = 9999 (十进制)

其中,9999 (0x270F) IE9,无论是否声明!DOCTYPE指令,页面以IE9兼容模式打开。对于未正确声明!DOCTYPE指令的页面,将会以怪异模式(quirks mode)加载

更多mode值对照表,参考:Browser Emulation

英语笔记

修正之前版本的一些错误,并添加一些新的词汇。

  • hold 成立
  • quadratic 二次方
  • multiplication
  • designation 称作,指定
  • convention 惯例
  • denote 表示
  • respectively 分别,各自
  • manipulate 操作
  • quotient 商
  • algebraic 代数的
  • fraction 分数
  • polynomial 多项式的
  • crucial 至关重要的
  • order 阶

    Read More

利用iptables禁止BT流量

确保安装了iptables。

在终端输入:

iptables -A FORWARD -m string --string "BitTorrent" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "BitTorrent protocol" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "peer_id=" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string ".torrent" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "announce.php?passkey=" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "torrent" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "announce" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "info_hash" --algo bm --to 65535 -j DROP
iptables -A FORWARD -m string --string "get_peers" --algo bm -j DROP
iptables -A FORWARD -m string --string "announce_peer" --algo bm -j DROP
iptables -A FORWARD -m string --string "find_node" --algo bm -j DROP
iptables -A FORWARD -m string --algo bm --hex-string "|13426974546f7272656e742070726f746f636f6c|" -j DROP

原理:不封锁端口,而是阻止BT软件发出的特定请求,并结合BT软件的hex,定向kill request。

保存规则:

iptables-save > /root/iptables.rules

重新加载规则:

iptables-restore < /root/iptables.rules

设置自启动

vim /etc/network/if-pre-up.d/iptables

添加如下内容:

#!/bin/bash
/sbin/iptables-restore < /root/iptables.rules

保存后赋予执行权限:

chmod +x /etc/network/if-pre-up.d/iptables