zues 发布的文章

mysite/settings.py 有很多关于项目的设置

数据库设置

mysite/settings.py 中找到 DATABASES

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }

INSTALLED_APPS

这些应用程序默认包含在常见情况中。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    ...

)

- 阅读剩余部分 -

创建项目

$ django-admin startproject mysite

这将创建一个名为 mysite 的项目,目录结构如下

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

开发服务器

$ python manage.py runserver

默认端口 8000,你可以指定端口

$ python manage.py runserver 8080

你还可以指定除了本机外其他 IP 也能访问

$ python manage.py runserver 0:8000

- 阅读剩余部分 -

安装与配置

安装samba:

[root@CentOS ~]# yum install samba samba-client

查看安装情况:

[root@CentOS ~]# rpm -qa | grep "samba"
samba-winbind-3.6.9-151.el6_4.1.i686
samba-client-3.6.9-151.el6_4.1.i686
samba-winbind-clients-3.6.9-151.el6_4.1.i686
samba-3.6.9-151.el6_4.1.i686
samba-common-3.6.9-151.el6_4.1.i686
  • samba-common 主要提供samba服务器的设置文件与设置文件语法检验程序testparm
  • samba-client 客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集
  • samba 服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项

- 阅读剩余部分 -

一、关于 TCP 重定向的实现。

TCP 重定向的实现方法有很多, 有些方法是先强制把原来的 Socket 改为阻塞模型(例如:对于消息模型的,先调WSPAsyncSelect(s, hWnd, 0, 0, err) 取消消息映射;对于事件模型的,先调用 WSPEventSelect(s, 0, 0, err) 取消事件),跟代理服务器握手成功后,再恢复原来的模型;有些方法是使用状态机;而最简单和最流行的方法是:把连接重定向到 127.0.0.1 本地自己程序监听的端口,由该程序来完成握手。之所以需要考虑这些问题,是因为当 connect 函数返回后,原来的程序便开始收发数据了,而 LSP 层还在和代理服务器协商,因为使用的是同一个 socket 句柄,所以这两个过程的数据收发是可能导致数据混乱的。

目前基本上所有 LSP 程序都是使用最后一个方法,因为还有个原因:对于网络游戏,如果你重定向到真正代理服务器,这个过程是可能消耗一定时间的,可能会导致网络游戏认为连接超时而断开连接,把连接重定向到 127.0.0.1 就没事了。

二、关于 UDP 重定向的实现。

UDP 的重定向不像 TCP 仅处理 WSPConnectWSPConnectEX 即可,它涉及到数据的收发,对应的两个函数是:WSPSendtoWSPRecvFrom,我们需要在发送的时候将真正的地址加到原数据头,然后将发送地址改为代理服务器的;在接收返回后,从头数据取出真正服务器的 IP 并去掉该头数据。我们先来看看,如果使用 API HOOK 是如何处理接收函数的:

- 阅读剩余部分 -

采用 LSP 方式进行网络加速需要部署 SOCKS5 代理服务器作为加速节点,加速客户端自动选择最快的代理服务器作为当前的转发节点。

开发人员在客户端需要完成的动作有:

1.编写我们自己的 LSP 协议动态库,重新实现我们需要的相关 socket 函数,如 connect

2.在用户的主机安装我们自己的 LSP 协议,这一操作可以放入我们的应用程序部署的时候完成,也可以在我们的加速器每次启动的时候进行部署;

3.当游戏客户端调用 connect 函数(或 WSAConnect 函数)试图连接游戏服务器时,通过 LSP 将连接重定向到代理服务器,并采用 SOCKS5 协议规范与代理服务器进行数据协商,由代理服务器来连接真正的游戏服务器,并将游戏服务器的数据原封不动转发给用户、同时将用户的数据原封不动转发给游戏服务器。

- 阅读剩余部分 -