CentOS 搭建CSGO服务器

最近有一些空闲的服务器要搭建 CSGO 服务器,综合一位前辈的文章,进行了一些总结和优化

由于我不会用 Windows 或者其他 Linux 系系统,因此这只写如何在 CentOS 7 64bit 上搭建 CSGO 服务器。

基础准备

CentOS 7 64bit

30G 硬盘

5Mbps+ 带宽

一个服务器令牌

下载 SteamCMD

SteamCMD 是 Valve 的一个 steam cmd 客户端,只具备一些基础功能,用来下载 CSGO 服务器。

首先我们要创建一个用户 steam,避免root的直接执行。

useradd -m steam
password steam

切换到 steam

su steam
cd ~
mkdir steamcmd
cd steamcmd

下载steamcmd 并解压

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar zxvf steamcmd_linux.tar.gz

创建一个update.txt自动下载脚本

vim update.txt

按I键开启编辑模式 复制以下内容进去

@ShutdownOnFailedCommand 1 
@NoPromptForPassword 1
login anonymous
force_install_dir ../csgoserver/
app_update 740
quit

保存

下载csgo服务端

./steamcmd.sh +runscript update.txt

服务器配置

下载好了之后还需要进行插件配置(sourcemod+metamod:source)以及服务器参数设置

https://www.sourcemod.net/downloads.php

http://www.metamodsource.net/downloads.php?branch=stable

把解压得到的addons跟cfg文件夹放到/home/steam/csgoserver/csgo/下

然后设置sourcemod管理员 addons/sourcemod/configs/admins_simple.ini

格式如

"STEAMID" "权限" "管理员密码(可选)"
"STEAM_1:1:59886493" "99:z"

随便进一个服务器 然后控制台打status

看到名字后面的STEAM_X:X:XXXXXX就是你的STEAMID

权限等级:

"a"//预留通道
"b"//管理员菜单的权限
"c"//踢人
"d"//BAN人
"e"//解BAN
"f"//娱乐命令(处死 火烧冰冻等)
"g"//更换服务器地图
"h"//修改服务器cvar参数
"i"//执行服务器cfg文件
"j"//发送消息
"k"//发动投票
"l"//给服务器上密码
"m"//rcon命令 远程控制服务器
"n"//修改sv_cheats参数以及使用其他作弊参数
"z" //顶级权限
"o-t" //自定义权限(warmod菜单等)

然后到csgoserver/csgo/cfg文件夹新建一个cfg文件比如autoexec.cfg 里面写入以下内容

hostname "你的服务器名称"
rcon_password "远程控制服务器的密码(与上面sourcemod里面的rcon不同)"
host_info_show 2
host_players_show 2
fps_max 1000
sv_region 4
sv_contact 你的邮箱 V社会做记录
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip

最后,如果你的服务器是需要改参数的,请新建一个文件叫 server.cfg,这样每次在加载模式后会修改参数。

脚本启动

使用脚本启动,在CSGOSever文件夹下,

vim run.sh

休闲模式

-game csgo -console -usercon +game_type 0 +game_mode 0

竞技模式

-game csgo -console -usercon +game_type 0 +game_mode 1

军备竞赛

-game csgo -console -usercon +game_type 1 +game_mode 0

爆破模式

-game csgo -console -usercon +game_type 1 +game_mode 1

死亡竞赛

-game csgo -console -usercon +game_type 1 +game_mode 2

写入以下内容

./srcds_run -console -game csgo -usercon -noipx -nohltv -steam_dir ../steamcmd -steamcmd_script ../steamcmd/update.txt -autoupdate +game_type 0 +game_mode 0 +map de_dust2

自动更新服务器

使用 crontab 设置自动更新

crontab -e
0 0 * * * /home/steam/steamcmd/steamcmd.sh +runscript update.txt

其他服务器启动项

-maxplayers_override 最大玩家数

-noipx 关闭IPX协议的支持

-nohltv 关闭gotv

-nobots 关闭bot功能! csgo如果想开某些不需要bot的服务器要加这个参数不然有人换队bot还是会占位!

-tickrate 128 设置服务器tick为128 满十必备

-authkey 如果要使用steam web API要用到这个启动项 apikey在这里申请:http://steamcommunity.com/dev/apikey

满十服务器

Warmod 插件是满十服务器最常用的一种解决方案。

官方地址 https://forums.alliedmods.net/showthread.php?t=225474

下载地址 https://warmod.bitbucket.io/plugins/warmod.smx

安装方法

将插件放在csgo/addons/sourcemod/plugins 下,然后配置将会自动启动。

run.sh 需要修改成这样

./srcds_run -console -game csgo -usercon -noipx -nohltv -steam_dir ../steamcmd -steamcmd_script ../steamcmd/update.txt -autoupdate +game_type 0 +game_mode 1 +map de_dust2

默认启动 Dust 2 地图。

KZ服务器

下次写

死斗服务器

下次写

CentOS 安装最新版的Wireguard

2017年,新一代VPN技术wireguard诞生。wireguard基于linux kernel内核运行,效率极高,速度很快,而且支持设备IP地址漫游功能,不仅适合服务器之间的互联,还适合在NAT环境下使用,包括家中的智能路由器,配合openwrt等路由器,可安装wireguard,实现路由器绑定wireguard代理功能。

其实我已经用Wireguard 很久了,但是一直没有时间去写如何配置,抽空写一篇博客来证明一下我自己还没死(

 

1. Wireguard 服务器配置

我用的是CentOS 7 64bit系统,而内核我使用的是 Linux 4.11.2-1.el7.elrepo 这个版本,因为这个版本是支持lotServer的,如果没有lotServer的授权,你也可以用nanqinglang 魔改版BBR。

首先先更新系统内核,我们执行以下命令

sudo yum update -y 
sudo rpm -ivh http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.11.2-1.el7.elrepo.x86_64.rpm --force
sudo rpm -ivh http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.11.2-1.el7.elrepo.x86_64.rpm --force
sudo rpm -ivh http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-headers-4.11.2-1.el7.elrepo.x86_64.rpm --force

设置 grub 来使使用新内核默认启动

sudo grub2-set-default 0
sudo grub2-mkconfig

启动完毕后我们加入 Wireguard 的 yum 源

sudo curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
sudo yum install epel-release -y
sudo yum install wireguard-dkms wireguard-tools -y

记得开启IPv4的转发

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

随后,使用命令创建Publickey和PrivateKey

mkdir /etc/wireguard
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
chmod 777 -R /etc/wireguard
vim /etc/wireguard/wg0.conf

服务器端需要以下内容

[Interface]
Address = 10.0.0.1/24
ListenPort = 56660
PrivateKey = <Private Key>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
SaveConfig = true

PrivateKey则是你刚生成的PrivateKey,需要填入进去。PostUP和PostDown是开启和关闭时分别执行的命令,你需要根据需求自行修改。

创建服务器端的自动启动

systemctl enable wg-quick@wg0

启动服务器端

wg-quick up wg0

至此,服务器端已经配置完毕,我们需要配置客户端

 

2.客户端配置

安装过程与服务器一直,但是配置文件是不一样的,具体的需要看你的需求。

假设我们需要将两台服务器互联,以便访问其内网中设备。我们的配置将如下:

[Interface]
Address = 10.0.0.2/24
ListenPort = 56660
PrivateKey = <Private Key>
PostUp = bash /etc/route-add 
PostDown = bash /etc/route-del
SaveConfig = true
 
[Peer]
PublicKey = <服务器端的Public Key>
AllowedIPs = 10.0.0.1/32
Endpoint = 服务器端的公网IP:56660

然后,这边需要注意的是AllowedIPs  如果你写了0.0.0.0/0,你可能会被全部reroute,从而导致连不上服务器。因此我这边推荐你设置为两边的IP先测试完毕再调全局。

随后一样的,启动wireguard。

在服务器端设置以下内容

wg set wg0 peer <客户端的Public Key> allowed-ips 10.0.0.1/32

然后你会发现两个内网IP可以互通,

ping -c 10 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=28.5 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=28.4 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=28.5 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=28.5 ms
64 bytes from 10.0.0.1: icmp_seq=5 ttl=64 time=28.5 ms
64 bytes from 10.0.0.1: icmp_seq=6 ttl=64 time=28.3 ms
64 bytes from 10.0.0.1: icmp_seq=7 ttl=64 time=28.6 ms
64 bytes from 10.0.0.1: icmp_seq=8 ttl=64 time=28.6 ms
64 bytes from 10.0.0.1: icmp_seq=9 ttl=64 time=28.3 ms
64 bytes from 10.0.0.1: icmp_seq=10 ttl=64 time=28.5 ms

--- 10.0.0.1 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9012ms
rtt min/avg/max/mdev = 28.360/28.522/28.688/0.207 ms

那么,我们的wireguard就算是通了,现在要仔细来调整这个路由让他来符合我们的需求。

就拿刚刚所说,如果是为了访问互相的内网,你需要把内网IP加入到 AllowedIPs  里面,用逗号区分。

比如说如下

[Interface]
Address = 10.0.0.2/24
ListenPort = 56660
PrivateKey = <Private Key>
PostUp = bash /etc/route-add 
PostDown = bash /etc/route-del
SaveConfig = true
 
[Peer]
PublicKey = <服务器端的Public Key>
AllowedIPs = 10.0.0.1/32, 192.168.0.0/16
Endpoint = 服务器端的公网IP:56660

在你启动wireguard后,你能访问到服务器端的192.168.0.0/16这个段,哦当然,这种可以认为是对等互联,所以不存在服务器或者客户端这种说法。

而另外一种做法,是在路由器上部署的,实现翻墙功能,这种配置应该是这么写的

[Interface]
Address = 10.0.0.2/24
ListenPort = 56660
PrivateKey = <Private Key>
PostUp = bash /etc/route-add 
PostDown = bash /etc/route-del
SaveConfig = true
 
[Peer]
PublicKey = <服务器端的Public Key>
AllowedIPs = 0.0.0.0/0
Endpoint = 服务器端的公网IP:56660
PersistentKeepalive = 25

另外一点,你需要编辑一下 /etc/route-add 来确保你的服务器IP不走wireguard,否则可能会连不上。

启动后,默认会将你所有流量都通过wg0这个接口到你的服务器上,实现翻墙。

3. Wireguard 的进阶玩法

这个以后再写,涉及到我目前做的一个项目,主要是给客户做游戏加速用,据说他们效果还不错。

 

具体就是开了一台机器作为他们的接入点,然后我们通过专线将流量导入到日本端,实现全天候稳定的游戏加速服务。

Wireguard只需要一个端口,只需要支持UDP并且内核支持,即可对接无数台VPS。

那么,聪明的人应该能想到一些东西了吧(这边先不公开了,等我玩腻了再说具体实现方案。

 

Pixiv彻底被墙

18年9月13日下午GFW开始对P站相关域名实施更高一级的tls识别,并进行TCP RST,目前主流改DNS和改HOSTS均已失效,和Steam Community是一样的待遇,而唯一的解决方案只要之前一篇文章提到的或者相关产品。

 

支持,威武,有希望了。

近期Steam社区无法连接的解决方法

由于众所周知的原因,我们伟大的祖国将万恶的G胖阻挡在国门外以此来保护我们的钱包不被掏空。

如果你不想贡献你的钱包给G胖,请立刻关闭此页面,不要让恶魔伤害你。

目前防火墙已经升级成为TCP阻断,改Hosts和302并没有用途,现在解决方案是使用Proxy相关工具来访问 Steam 社区。同理这个东西可用于Twitch Google YouTube等一系列不存在的网站。

我这边推荐使用 Shadowsocks 这款程序来访问,轻量便于使用。

首先你得有一些SS节点,如果没有的话,我推荐你们使用这家

接下来是操作步骤,

  1. 下载Shadowsocks-Windows的Release,下载地址
  2. 通过平台节点页面获取到你的配置信息。
  3. 点开任意一个节点,你应该能看到一个大大的二维码,一行以ss://开头的链接
  4. 打开shadowsocks.exe,你会看到一个小飞机图标在任务栏里面。
  5. 右键点击小飞机,找到服务器,然后选择从屏幕上获取二维码,这时你的SS配置就会加载到客户端中。
  6. 右键小飞机打开系统代理,然后Pac->从GFWList更新Pac
  7. 打开浏览器,访问https://steamcommunity.com/看看能否成功,如果遇到某个网站迟迟不能打开,可以尝试全局代理或者手动编辑Pac

 

如果你们想要用我推荐的这家,但是担心不稳定什么的,可以联系我拿几个测试码来使用。

 

Steam: https://steamcommunity.com/id/cutesakura/

邮箱: admin@kotori.net

TG: https://t.me/Andyxu1999

 

P.S 真的想好要贡献钱包给G胖了吗?给你们看下面几张图吧。

 

 

买箱子,买钥匙,开箱子,汰换,出售,再买钥匙,在开箱子,在卖,周而复始,归零。

 

请组织放心,0金0红一把战痕累累的Famas卖了22块。2333

CSGO Demo 新下载方式

最近又出现了Demo无法下载的问题,但是在GDPR生效之后,Valve给出了一个信息统计页面,刚做了一下测试是能够正常下载Demo的。

 

 

 

这个东西藏得比较深,具体的URL是你的个人主页+/gcpd/730/?tab=matchhistorycompetitive 然后点下载GOTV回放即可。

我的URL是https://steamcommunity.com/id/cutesakura,那么我下载GOTV的页面就是https://steamcommunity.com/id/cutesakurahime/gcpd/730/?tab=matchhistorycompetitive (这个只能自己看到的)

 

 

下载完成的Demo可以通过 CSGO Demo Manager这款软件去分析,你也可以通过这个软件下载官匹Demo,但是我自己实测失败率挺高的。。。P.S 最近官匹挂是真的少,都没认真玩小分带走了,我队友真棒!!

阿里云国际版认证过程分享

今天实在忍受不住某些服务商号称的GIA CN2的那种诡异的爆炸般的速度了,直接想办法去认证国际版阿里云,结果发现审核好像没有之前那么严苛了。

首先你需要准备以下东西

  1. 香港手机号
  2. 一张可以被阿里云认可的信用卡
  3. 一个邮箱

前往https://www.alibabacloud.com/zh 注册账号

跟着他的步骤来,非常简单即可通过。

而这个注册认证的难点就是在找一张没有被阿里云封禁的信用卡,我这里只能给你们一个思路,就是找Visa/MasterCard Prepaid Card 或者找 Debit Card购买。

目前我用的这张Debit Card是虚拟卡,没有被阿里云Ban掉,所以是一个很难得的资源。但是如果一旦公开在网络上,一定会被蝗虫大军给立刻捣毁。如果你希望我提供协助,可以email

我会告诉你价格和方法。

话不多少,可以尽情的爽了

老版本 Windows 10 屏蔽Windows10 更新助手

我在Mac安装Win10 双系统的时候,当时选择了 Windows 10 Pro 1607 这个版本。目前根据微软官方的说法,这个版本的Windows 需要更新到Windows 10 1709这个版本。

Summary

If you're currently running Windows 10 Version 1507, Version 1511, Version 1607 or Version 1703, you can expect to receive a notification that states that your device has to have the latest security updates installed. Windows Update will then try to update your device.

When you receive the update notification, click Update now to update your device.

This update is also offered directly to Windows Update Client for some devices that have not installed the most recent updates.

Windows 10 Version 1507 and Version 1511 are currently at "end of service." This means that devices that are running these operating systems no longer receive the monthly security and quality updates that contain protection from the latest security threats. To continue receiving security and quality updates, Microsoft recommends that you update the system to the latest Windows version, Windows 10 Version 1709.

Windows 10 version 1607 and version 1703 are not yet at "end of service." However, they must be updated to the latest versions of Windows 10 to ensure protection from the latest security threats.

To learn more about the "end of service" status for these versions of Windows 10, see the frequently asked questions for Windows 10 Version 1507 or Windows 10 Version 1511.

而用BootCAMP安装的Windows10 不知道有什么Bug,无论如何都无法正常更新。而通过关闭Windows Update无法解决微软的强制更新,他会不断地安装一个补丁,然后安装 Windows 10 Update Assistant 这个流氓软件。手动卸载后一起重启他又会回来。

仔细想了一下其实是可以通过屏蔽某个补丁来实现不强制更新的,微软官方有推出过这个功能,可以从微软官网上找到。

Link

 

点击下一步,他会去查找更新补丁

 

而只需要点上你不想要的那些补丁,然后点击下一步,即可屏蔽Windows 10 Update Assistant。

一行字解决无法访问 Pixiv

从2017年9月开始,P站被墙了。但是P站的图床域名(pximg.net)并没有被墙。并且经过简单的测试,目前针对 Pixiv 的仅仅是 DNS 投毒

Sakura:~ Sora$ dig www.pixiv.net

; <<>> DiG 9.9.7-P3 <<>> www.pixiv.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40630
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.pixiv.net.			IN	A

;; ANSWER SECTION:
www.pixiv.net.		300	IN	A	74.86.12.172

;; Query time: 19 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Thu Feb 01 19:13:33 CST 2018
;; MSG SIZE  rcvd: 47

而在境外测得的结果是如下

[root@mono ~]# dig www.pixiv.net

; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.2 <<>> www.pixiv.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50555
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.pixiv.net.                 IN      A

;; ANSWER SECTION:
www.pixiv.net.          240     IN      CNAME   pixiv.net.
pixiv.net.              240     IN      A       210.129.120.43
pixiv.net.              240     IN      A       210.129.120.41
pixiv.net.              240     IN      A       210.129.120.44

;; AUTHORITY SECTION:
pixiv.net.              213     IN      NS      ns1.pixiv.net.
pixiv.net.              213     IN      NS      ns2.pixiv.net.

;; ADDITIONAL SECTION:
ns1.pixiv.net.          213     IN      A       210.129.120.60
ns2.pixiv.net.          213     IN      A       210.129.120.62

;; Query time: 219 msec
;; SERVER: 108.61.10.10#53(108.61.10.10)
;; WHEN: Thu Feb 01 19:15:16 CST 2018
;; MSG SIZE  rcvd: 172

解析得到的是210.129.120.41这一组 IP 能够在中国大陆直接访问

ping -c 4 210.129.120.41 
PING 210.129.120.41 (210.129.120.41): 56 data bytes
64 bytes from 210.129.120.41: icmp_seq=0 ttl=47 time=106.773 ms
64 bytes from 210.129.120.41: icmp_seq=1 ttl=47 time=113.868 ms
64 bytes from 210.129.120.41: icmp_seq=2 ttl=47 time=100.819 ms
64 bytes from 210.129.120.41: icmp_seq=3 ttl=47 time=97.169 ms

--- 210.129.120.41 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 97.169/104.657/113.868/6.327 ms

因此我们直接加一行 hosts 即可解决这个问题。

MacOS: /etc/hosts

Windows: C:\Windows\system32\drivers\etc\Hosts

 

将下面的内容复制进去

210.129.120.41 www.pixiv.net 
210.129.120.41 accounts.pixiv.net
210.140.131.144 source.pixiv.net 
210.140.131.144 imgaz.pixiv.net

然后就能愉♂快得访问 Pixiv 啦

利用 Waifu2x 来给老图高清放大并降噪

简介

Waifu2x ,是一款可以帮助你把老旧照片、插图放大并且不模糊的神奇,非常适合各位死宅们使用

 

样例

最近在看老番,少女心爆炸,有很多几年前甚至十几年前的精美图放到现在依旧可以细细品鉴,但无奈年代久远,很多插画在现在看来是十分模糊了,那么利用Waifu2x算法就可以让这些老图展现新的生机

原图

放大后

原图

放大后

原图

放大后

这样看上去似乎没有什么差别,那么.......

 

差别细放

 

上面的那张是原图,下面的那张是经过算法改进的修正图,是否能感受到一丝不同呢?什么??你告诉我你看不出来?那么我们继续放大这两张图,如下图所示,这回你总该看出来差别了吧~~如果还看不出来建议关闭这个博客然后去睡一觉,一定是撸多了变傻了。

 

下载

Waifu2x终究还是一个算法,普通人貌似是没办法直接用的,Waifu2x的算法开源在GitHub上

Github: https://github.com/nagadomi/waifu2x

岛国有一位大佬利用这个算法写了一款软件叫 Waifu2x Caffe,我们只需要把文件或者文件夹写入,然后调一下你想要的倍率和降噪即可,极其傻瓜易懂。

Waifu2x caffe: https://github.com/lltcggie/waifu2x-caffe

修改 Steam 皮肤

每天面对着一尘不变的 Steam 客户端,你就没有一点点想改变的想法?

阅读全文→