openwrt 做旁路由如何設置

主路由是指通過撥號與外網聯係的路由,而旁路由是和主路由在一個網段内負責連接内網設備的。所以旁路由基本上是作爲一個交換機在使用。

僅僅作爲交換機的話,我們就需要關閉openwrt的一些功能,以提高效率。

1.首先 LAN 接口设置 IP设为主路由同一个网段下的IP,网关指向主路由。

2.关闭DHCP服务器,勾选忽略此接口即可。

3.IPV6 禁用所有选项

4.在启动项 禁用 firewall(防火墻) dnsmasq(DHCP和DNS服務) odhcpd(IPv6的DHCP服務) 这三个应用,這三個服務我們都交給主路由。

當然,以上是根據官方原版做的設置,如果你安裝的是第三方固件可能有更多的功能需要禁用。

5.保存并应用即可,如果无法连接,可重启一下再试。

一般硬路由都有一个WAN口,为了不浪费这个接口。我们可以在LAN接口设置 物理设置的接口中勾选这个WAN口,这样路由器上的WAN口就可以作为普通的LAN口来连接设备了。

双软路由 ROS + LEDE 的注意事项

首先区分ROS 和 LEDE都负责什么功能。

ROS 负责 PPPOE 拨号,以及DNS缓存,DHCP服务器。作为主路由我们把IP设为 10.10.10.1

LEDE 负责 一些比较有意思的功能,具体可以看一下酷软中心。作为二级路由我们把IP设置为10.10.10.2

软路由上我们还要接一个无线路由作为无线AP来使用,作为三级路由我们把IP设置为10.10.10.3

硬路由有路由芯片,设备之间的数据传输效率要比软路由高的多,所以我们的设备应尽量连接在硬路由上,设备多的可接交换机。

软路由只负责对外网的数据处理,不负责内网的数据交换。所以两个口的软路由已经足够使用。

我们按照顺序,先设置一级路由,ROS设置PPPOE拨号,

DNS服务器指向二级路由,并开启dns缓存,指向二级路由LEDE的原因是因为有些网址通过翻墙才能获得正确IP。

并设置DHCP服务,网关设为二级路由,DNS服务器指向自己。

二级路由LEDE的网关指向一级路由,DNS服务器可以随便设置一些公共DNS服务器,因为装了翻墙软件后,DNS服务会被接管。

三级路由网关指向一级路由即可。

以上,顺便说一下软路由的确能够大幅的提高上网体验。值得投资。

PVE安裝ROS破解版的相關教程

最近開始折騰軟路由,網上可以很方便的下載到ROS的破解版。格式常見的有OVA和IMG兩種。

OVA格式的我們可以用解壓軟件直接解壓出來三種格式的文件分別是MF,OVF和VMDK文件。當然網上也可以下載到解壓好的。

我們通過WinSCP工具上傳到PVE上,先不建立虛擬機,在PVE的命令行下進入我們上傳的文件目錄執行下列命令。

qm importovf 666 ROS.ovf local-lvm  # ovf文檔安裝方法
qm importdisk 666 ROS.img local-lvm  # img文檔安裝方法 此種方法需要先建立一個虛擬機

這樣我們就成功導入了666這個虛擬機,在PVE的虛擬機列表我們就可以看到666這個虛擬機了。然後我們需要破解ROS,我試了幾個L6的版本,基本上破解方式是相同的,可能都是來源于一種破解方法。

進入 /etc/pve/nodes/(你命名的PVE節點名稱)/qemu-server 目錄修改666.conf這個文件,在ide0后添加下列内容。

,model=VMware%20Virtual%20IDE%20Hard%20Drive,serial=00000000000000000001

包含逗號,如果有多個ide都添加上。保存後,我們的破解工作就完成了。

啓動666這個ROS虛擬機,我們進入ROS控制臺執行一些常用命令。

ip address print  # 打印IP地址 
interface print  # 打印網卡列表
system license  # 打印許可證 可以看到授權等級

一般破解好的ROS都會綁定一個ip地址,我們通過下列方式修改,先通過打印IP地址,找到他的序號(一般是0),執行下列命令刪除。

ip address remoe 0  # 刪除默認的ip地址

刪除之後執行下列命令添加我們想要的IP

ip address add address=192.168.1.6/24 interfacce=ether0  # 設置IP地址和網段,並綁定網卡

這樣我們就可以通過192.168.1.6這個地址進入ROS的WEB的管理界面了。

有的版本還修改了WEB管理界面的端口號,執行以下命令查看端口號。

ip service print  # 打印所有端口號

有的版本還禁用了WEB管理界面,執行下列命令開啓或修改端口。

ip service set www disabled=no  # 開啓www的端口
ip service set www port=8080  # 修改www的端口

ss-libev一些常用命令

1.查看版本

ss-server -h

2.查看是否開啓udp

sudo netstat -npl | grep ss-server

3.開啓tcp-fastopen

服務器端和openwrt客戶端修改 /etc/sysctl.conf 增加下列字段

net.ipv4.tcp_fastopen = 3  # 1 开启客户端,2 开启服务端,3 都开启

並執行下列命令使之生效

sysctl -p

修改服務端ss的配置文件增加下列字段

"fast_open": true

git添加忽略文件.gitignore

一般我们在最开始的时候都会把所有的文件同步到git,到后期我们会发现一些图片文件,敏感文件不应该同步过去。于是我们就必须要使用.gitignore来阻止一些文件的同步。

首先,我们需要在项目的根目录创建.gitignore文件,并填写忽略的内容,如下:

/media/  # 忽略的文件夹
*.pyc        # 忽略的文件类型
/.idea/

接下来我们必须清空git缓存区,并重新提交所有文件到缓存区

git rm -r --cached .       # 清除缓存
git add .                            # 重新trace file

最后我们把.gitignore也加入版本管理。

ubuntu 18.04 无法安装NVIDIA驱动解决方法

笔记本是双显卡,在终端执行

ubuntu-drivers devices

可以列出可以安装的驱动 含有recommended的表示推荐的驱动
如下所示(我已安装好之后的显示)

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00000DF6sv000017AAsd00003981bc03sc00i00
vendor   : NVIDIA Corporation
model    : GF108M [GeForce GT 550M]
driver   : nvidia-304 - third-party free
driver   : nvidia-340 - distro non-free
driver   : nvidia-driver-390 - distro non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

我们执行安装命令直接安装推荐的驱动

sudo apt-get install nvidia-driver-390 

问题出在这里,安装过程中提示一个文件不能覆盖,因为已经被某个软件包占用。因为ubuntu默认的驱动是xserver-xorg-video-nouveau 并且包含这个文件。这个时候我们就要添加强制写入的命令 dpkg -i –force-overwrite。
完整的命令如下

sudo apt-get -o Dpkg::Options::="--force-overwrite" -f install nvidia-driver-390 

成功安装后重启即可。

django 环境注意事项

如果使用python3环境,我们需要用pymysql代替mysqldb,在虚拟环境中使用下列代码安装pymysql。

pip install PyMySQL

在项目的 __init__.py中添加下列两行

import pymysql
pymysql.install_as_MySQLdb()

如果报错 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3. 则需要修改/lib/python3.6/site-packages/django/db/backends/mysql/base.py注释掉下列代码。

"""
if version < (1, 3, 13):
    raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
"""

接下来可能会报错AttributeError: ‘str’ object has no attribute ‘decode’,我们需要修改lib/python3.6/site-packages/django/db/backends/mysql/operations.py文件以下代码

query = query.encode(errors='replace')

如何批量删除twitter的喜欢

用chrome打开twitte的喜欢页面,F12打开控制台,在Console中执行以下脚本即可。

setInterval(
    function() {
        t = $( 'button.ProfileTweet-action--unfavorite' ); // get unfavourite buttons
        for ( i = 0; true; i++ ) { // count
            if ( i >= t.length ) { // if items remain to unfavourite
                window.scrollTo( 0, $( document ).height() ); // scroll to bottom of page - loads more
                return
            }
           $( t[i] ).trigger( 'click' ).remove(); // click and remove button from dom
        }
    }, 2000
)

mysql支持中文的配置说明

修改/etc/mysql/my.cnf,增加下列几行

[mysqld]
character-set-server=utf8

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

登录mysql时出现如下错误:

mysql: Character set 'uft8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file
mysql: Character set 'uft8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file
ERROR 2019 (HY000): Can't initialize character set uft8 (path: /usr/share/mysql/charsets/)

查阅了很多资料都未能解决,问题恰恰出现在这里,后面指定的utf8改为大写。修改如下解决问题。

[mysqld]
character-set-server=UTF8

[client]
default-character-set=UTF8

[mysql]
default-character-set=UTF8