debian command

debian command # list installed package dpkg --list # remove package apt-get remove foo # ping, command not found apt-get install inetutils-ping dpkg-reconfigure tzdata

2015-05-03 · 1 min · 24 words · -

Arch Linux 自动连接可用无线网络

Arch Linux 自动连接可用无线网络 本文来自依云’s Blog,转载请注明。 Arch Linux 连接网络可以使用其官方开发的 netctl 系列命令行工具。要想在开机 (以及从挂起/休眠状态唤醒) 时自动连接到可用的无线网络,以下是设置步骤。 首先,你得告诉 Arch Linux 你知道哪些无线热点。Arch Linux 不会自动帮你破解别人的 Wi-Fi 密码的。就算 Wi-Fi 热点没有加密,你不说 Arch Linux 怎么知道它应当连接到那个热点呢,也许那是个钓鱼用的热点也说不定哦。 cd 到 /etc/netctl 目录下,可以看到 examples 目录下有一堆示例配置。复制你所需要的配置文件到上一层目录 (/etc/netctl) 。比如绝大多数 Wi-Fi 热点使用的是 WPA 加密,那就复制 examples/wireless-wpa 文件。目标文件名比较随意,起个方便自己的名字就行,比如 work、home 之类的。复制完成之后记得 chmod 600 禁止非 root 用户访问,因为配置文件里会包含你的 Wi-Fi 热点密码。 然后编辑配置文件,修改 ESSID 和 Key 为你的 Wi-Fi 热点 ID 和密码就可以了。之所以要先更改权限再编辑,是因为某些编辑器 (如 Vim) 会生成同权限的备份文件;那里有可能也会包含密码。可以放多份配置文件在这里,netctl-auto 默认会去找一个可用的连接。有多个可用的时候不太清楚它会连上哪一个,可以使用更复杂的配置文件来指定优先级 (参见 examples/wireless-wpa-configsection 示例配置) 。 配置文件写好之后,当然是启动相应的服务啦。Arch Linux 一贯的传统是不启动不必要的服务,除非用户说要启动之。netctl-auto 的 systemd 服务名是 netctl-auto@interface.service (当然 .service 后缀还是可以省略的) 。interface 部分写你的无线网络接口的名字,可以通过 ip link、ifconfig、iwconfig 等命令看到。我禁用了 systemd 的可预测网络接口名称,所以我的无线网络接口名唤 wlan0。我使用如下命令启动服务: ...

2015-05-02 · 1 min · 175 words · -

Linux /etc/init.d /etc/rc.local

Linux /etc/init.d /etc/rc.local http://blog.csdn.net/acs713/article/details/7322082 本文英语版本来自: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/ 以下内容是作者自己的翻译版本,如需转载到CSDN外其他网站,请注明本文链接。 一、关于/etc/init.d 如果你使用过linux系统,那么你一定听说过init.d目录。这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要。init.d目录包含许多系统各种服务的启动和停止脚本。它控制着所有从acpid到x11-common的各种事务。当然,init.d远远没有这么简单。 (译者注: acpid 是linux操作系统新型电源管理标准 ;X11也叫做X Window系统,X Window系统 (X11或X)是一种位图显示的 视窗系统 。它是在 Unix 和 类Unix 操作系统 ,以及 OpenVMS 上建立图形用户界面 的标准工具包和协议,并可用于几乎已有的现代操作系统) 。 当你查看/etc目录时,你会发现许多rc#.d 形式存在的目录 (这里#代表一个指定的初始化级别,范围是0~6) 。在这些目录之下,包含了许多对进程进行控制的脚本。这些脚本要么以"K"开头,要么以"S"开头。以K开头的脚本运行在以S开头的脚本之前。这些脚本放置的地方,将决定这些脚本什么时候开始运行。在这些目录之间,系统服务一起合作,就像运行状况良好的机器一样。然而,有时候你希望能在不使用kill 或killall 命令的情况下,能干净的启动或杀死一个进程。这就是/etc/init.d能够派上用场的地方了! 如果你在使用Fedora系统,你可以找到这个目录: /etc/rc.d/init.d。实际上无论init.d放在什么地方,它都发挥着相同的作用。 为了能够使用init.d目录下的脚本,你需要有root权限或sudo权限。每个脚本都将被作为一个命令运行,该命令的结构大致如下所示: /etc/init.d/command 选项 comand是实际运行的命令,选项可以有如下几种: start stop reload restart force-reload 大多数的情况下,你会使用start,stop,restart选项。例如,如果你想关闭网络,你可以使用如下形式的命令: /etc/init.d/networking stop 又比如,你改变了网络设置,并且需要重启网络。你可以使用如下命令: /etc/init.d/networking restart init.d目录下常用初始化脚本有: networking samba apache2 ftpd sshd dovecot MySQL 当然,你可能有其他更多常用的脚本,这个取决于你安装了什么linux操作系统。 二、关于/etc/rc.local rc.local也是我经常使用的一个脚本。该脚本是在系统初始化级别脚本运行之后再执行的,因此可以安全地在里面添加你想在系统启动之后执行的脚本。常见的情况是你可以再里面添加nfs挂载/mount脚本。此外,你也可以在里面添加一些调试用的脚本命令。例如,我就碰到过这种情况: samba服务总是无法正常运行,而检查发现,samba是在系统启动过程中就该启动执行的,也就是说,samba守护程序配置保证了这种功能本应该正确执行。碰到这种类似情况,一般我也懒得花大量时间去查为什么,我只需要简单的在/etc/rc.local脚本里加上这么一行: /etc/init.d/samba start 这样就成功的解决了samba服务异常的问题。 三、总结 Linux是灵活的。正因为它的灵活性,我们总是可以找到许多不同的办法来解决同一个问题。启动系统服务的例子就是一个很好的佐证。有了/etc/init.d目录下的脚本,再加上/etc/rc.local这个利器,你可以放心的确保你的服务可以完美的启动和运行。

2015-05-02 · 1 min · 67 words · -

archlinux wireless

archlinux wireless https://wiki.archlinux.org/index.php/Wireless_network_configuration ip link set wlp3s0 up wifi-menu -o netctl start profile netctl enable profile netctl start wlp0s26f7u5-w1100n ——deleted sudo wpa_supplicant -i wlp0s26f7u5 -c /etc/wpa_supplicant/wpa_supplicant.conf -d sudo dhcpcd wlp0s26f7u5

2015-04-26 · 1 min · 30 words · -

net-tools

net-tools Deprecated @See iproute2 $ ifconfig eth1 使用iproute2: 同样,如果接口分配了多个IP地址,iproute2会显示出所有地址,而net-tools只能显示一个IP地址。 为网络接口分配IPv6地址 使用这些命令为网络接口添加IPv6地址。net-tools和iproute2都允许用户为一个接口添加多个IPv6地址。 http://linux.cn/article-4326-1.html 如今很多系统管理员依然通过组合使用诸如ifconfig、route、arp和netstat等命令行工具 (统称为net-tools) 来配置网络功能,解决网络故障。net-tools起源于BSD的TCP/IP工具箱,后来成为老版本Linux内核中配置网络功能的工具。但自2001年起,Linux社区已经对其停止维护。同时,一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。 作为网络配置工具的一份子,iproute2的出现旨在从功能上取代net-tools。net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink socket 接口与内核通讯。抛开性能而言,iproute2的用户接口比net-tools显得更加直观。比如,各种网络资源 (如link、IP地址、路由和隧道等) 均使用合适的对象抽象去定义,使得用户可使用一致的语法去管理不同的对象。更重要的是,到目前为止,iproute2仍处在持续开发中。 如果你仍在使用net-tools,而且尤其需要跟上新版Linux内核中的最新最重要的网络特性的话,那么是时候转到iproute2的阵营了。原因就在于使用iproute2可以做很多net-tools无法做到的事情。 对于那些想要转到使用iproute2的用户,有必要了解下面有关net-tools和iproute2的众多对比。 显示所有已连接的网络接口 下面的命令显示出所有可用网络接口的列表 (无论接口是否激活) 。 使用net-tools: $ ifconfig -a 使用iproute2: $ ip link show 激活或停用网络接口 使用这些命令来激活或停用某个指定的网络接口。 使用net-tools: $ sudo ifconfig eth1 up $ sudo ifconfig eth1 down 使用iproute2: $ sudo ip link set down eth1 $ sudo ip link set up eth1 值得注意的是,可以使用iproute2给同一个接口分配多个IP地址,ifconfig则无法这么做。使用ifconfig的变通方案是使用IP别名。 $ sudo ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1 ...

2015-04-25 · 2 min · 417 words · -

Linux 文件权限

Linux 文件权限 拥有者 owner, 群组 group, 其它组 other 模式 数字 rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 -x- 1 --- 0 http://zhangfeikr.blog.51cto.com/1999170/396541 一个用户、一个组 我们来看一看 Linux 权限和所有权模型。我们已经看到每个文件属于一个用户和一个组。这正是 Linux 中权限模型的核心。您可以在 ls -l 清单中查看用户和组: $ ls -l /bin/bash -rwxr-xr-x 1 root wheel 430540 Dec 23 18:27 /bin/bash 在这个特殊的示例中,/bin/bash 可执行文件属于 root 用户,并且在 wheel 组中。Linux 权限模型通过允许给每个文件系统对象设置三种独立的权限级别来工作 — 它们为文件的所有者、文件的组以及所有其他用户。 理解"ls -l" 我们来看一看我们的 ls -l 输出,检查一下这个清单的第一栏: $ ls -l /bin/bash -rwxr-xr-x 1 root wheel 430540 Dec 23 18:27 /bin/bash 第一个字段 -rwxr-xr-x 包含该特殊文件的权限的符号表示。该字段中的首字符 (-) 指定该文件的类型,本例中它是一个常规文件。其它可能的首字符还有: ...

2015-02-06 · 4 min · 655 words · -

which, command, type

which, command, type 避免使用which, 用shell内置的 command -v, hash, type替代 command -v 相当于 type type type是bash内置命令,语法: type [-afptP] [name ...] type工具用于显示命令的类型信息。它将展示在命令行上输入给定的命令将如何解释。 通过type 命令可以查看命令类型: type echo # echo is a shell builtin which http://www.cnblogs.com/peida/archive/2012/11/08/2759805.html 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置。 whereis 查看文件的位置。 locate 配合数据库查看文件位置。 find 实际搜寻硬盘查询文件名称。 which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。 1.命令格式: which 可执行文件名称 2.命令功能: which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。 3.命令参数: -n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 -p 与-n参数相同,但此处的包括了文件的路径。 -w 指定输出时栏位的宽度。 -V 显示版本信息 4.使用实例: 实例1: 查找文件、显示命令路径 命令: which lsmod 输出: [root@localhost ~]# which pwd /bin/pwd [root@localhost ~]# which adduser ...

2014-09-04 · 1 min · 134 words · -

linux tty

linux tty pts(pseudo-terminal slave) 用tty命令看看当前bash关联到了哪个tty tty 看 tty 都被哪些进程打开了 lsof /dev/pts/1 往tty里面直接写数据跟写标准输出是一样的效果 echo foo > /dev/pts/1 下面是 tty 和进程以及 I/O 设备交互的结构图: Input +--------------------------+ R/W +------+ ----------->| |<---------->| bash | | pts/1 | +------+ <-----------| |<---------->| lsof | Output | Foreground process group | R/W +------+ +--------------------------+ 两个pts间发送消息 echo "foo" > /dev/pts/2 # 红色字体, 颜色代码参照ANSI控制码 echo -e "\033[31mFoo\033[0m" > /dev/pts/2 列出系统支持的所有终端类型 toe -a 比较两个终端的区别 infocmp infocmp vt100 vt220 TTY历史 支持多任务的计算机出现之前 在计算机出来以前,人们就已经在使用一种叫teletype的设备,用来相互之间传递信息,看起来像下面这样: ...

2014-08-11 · 6 min · 1251 words · -

Linux动态链接库.so文件

Linux动态链接库.so文件 http://blog.csdn.net/ithomer/article/details/7346146 **1. 介绍 ** 使用GNU的工具我们如何在Linux下创建自己的程序函数库?一个"程序函数库"简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数据可以在事后供其他的程序使用。程序函数库可以使整个程序更加模块化,更容易重新编译,而且更方便升级。 程序函数库可分为3种类型: 静态函数库 (static libraries) 、共享函数库 (shared libraries) 、动态加载函数库 (dynamically loaded libraries) : 静态函数库,是在程序执行前就加入到目标程序中去了; 共享函数库,则是在程序启动的时候加载到程序中,它可以被不同的程序共享;动态加载函数库则可以在程序运行的任何时候动态的加载。 动态函数库,并非另外一种库函数格式,区别是动态加载函数库是如何被程序员使用的。 **2. 静态函数库 ** 静态函数库实际上就是简单的一个普通的目标文件的集合,一般来说习惯用".a"作为文件的后缀。可以用ar这个程序来产生静态函数库文件。Ar是archiver的缩写。静态函数库现在已经不在像以前用得那么多了,主要是共享函数库与之相比较有很多的优势的原因。慢慢地,大家都喜欢使用共享函数库了。不过,在一些场所静态函数库仍然在使用,一来是保持一些与以前某些程序的兼容,二来它描述起来也比较简单。 静态库函数允许程序员把程序link起来而不用重新编译代码,节省了重新编译代码的时间。不过,在今天这么快速的计算机面前,一般的程序的重新编译也花费不了多少时间,所以这个优势已经不是像它以前那么明显了。静态函数库对开发者来说还是很有用的,例如你想把自己提供的函数给别人使用,但是又想对函数的源代码进行保密,你就可以给别人提供一个静态函数库文件。理论上说,使用ELF格式的静态库函数生成的代码可以比使用共享函数库 (或者动态函数库) 的程序运行速度上快一些,大概1-5%。 创建一个静态函数库文件,或者往一个已经存在地静态函数库文件添加新的目标代码,可以用下面的命令: ar rcs my_library.a file1.o file2.o 这个例子中是把目标代码file1.o和file2.o加入到my_library.a这个函数库文件中,如果my_library.a不存在则创建一个新的文件。在用ar命令创建静态库函数的时候,还有其他一些可以选择的参数,可以参加ar的使用帮助。这里不再赘述。 一旦你创建了一个静态函数库,你可以使用它了。你可以把它作为你编译和连接过程中的一部分用来生成你的可执行代码。如果你用gcc来编译产生可执行代码的话,你可以用"-l"参数来指定这个库函数。你也可以用ld来做,使用它的"-l"和"-L"参数选项。具体用法可以参考info:gcc。 **3. 共享函数库 ** 共享函数库中的函数是在当一个可执行程序在启动的时候被加载。如果一个共享函数库正常安装,所有的程序在重新运行的时候都可以自动加载最新的函数库中的函数。对于Linux系统还有更多可以实现的功能: 升级了函数库但是仍然允许程序使用老版本的函数库。 当执行某个特定程序的时候可以覆盖某个特定的库或者库中指定的函数。 可以在库函数被使用的过程中修改这些函数库。 3.1. 一些约定 如果你要编写的共享函数库支持所有有用的特性,你在编写的过程中必须遵循一系列约定。你必须理解库的不同的名字间的区别,例如它的"soname"和"real name"之间的区别和它们是如何相互作用的。你同样还要知道你应该把这些库函数放在你文件系统的什么位置等等。下面我们具体看看这些问题。 3.1.1. 共享库的命名 每个共享函数库都有个特殊的名字,称作"soname"。soname名字命名必须以"lib"作为前缀,然后是函数库的名字,然后是".so",最后是版本号信息。不过有个特例,就是非常底层的C库函数都不是以lib开头这样命名的。 每个共享函数库都有一个真正的名字 (“real name”) ,它是包含真正库函数代码的文件。真名有一个主版本号,和一个发行版本号。最后一个发行版本号是可选的,可以没有。主版本号和发行版本号使你可以知道你到底是安装了什么版本的库函数。另外,还有一个名字是编译器编译的时候需要的函数库的名字,这个名字就是简单的soname名字,而不包含任何版本号信息。 管理共享函数库的关键是区分好这些名字。当可执行程序需要在自己的程序中列出这些他们需要的共享库函数的时候,它只要用soname就可以了;反过来,当你要创建一个新的共享函数库的时候,你要指定一个特定的文件名,其中包含很细节的版本信息。当你安装一个新版本的函数库的时候,你只要先将这些函数库文件拷贝到一些特定的目录中,运行ldconfig这个实用就可以。ldconfig检查已经存在的库文件,然后创建soname的符号链接到真正的函数库,同时设置/etc/ld.so.cache这个缓冲文件。这个我们稍后再讨论。 ldconfig 并不设置链接的名字,通常的做法是在安装过程中完成这个链接名字的建立,一般来说这个符号链接就简单的指向最新的soname或者最新版本的函数库文件。最好把这个符号链接指向soname,因为通常当你升级你的库函数后,你就可以自动使用新版本的函数库类。 我们来举例看看: /usr/lib/libreadline.so.3 是一个完全的完整的soname,ldconfig可以设置一个符号链接到其他某个真正的函数库文件,例如是/usr/lib/libreadline.so.3.0。同时还必须有一个链接名字,例如 /usr/lib/libreadline.so就是一个符号链接指向/usr/lib/libreadline.so.3。 3.1.2. 文件系统中函数库文件的位置 共享函数库文件必须放在一些特定的目录里,这样通过系统的环境变量设置,应用程序才能正确的使用这些函数库。大部分的源码开发的程序都遵循GNU的一些标准,我们可以看info帮助文件获得相信的说明,info信息的位置是: info:standards#Directory_Variables。GNU标准建议所有的函数库文件都放在/usr/local/lib目录下,而且建议命令可执行程序都放在/usr/local/bin目录下。这都是一些习惯问题,可以改变的。 文件系统层次化标准FHS (Filesystem Hierarchy Standard) (http://www.pathname.com/fhs) 规定了在一个发行包中大部分的函数库文件应该安装到/usr/lib目录下,但是如果某些库是在系统启动的时候要加载的,则放到/lib目录下,而那些不是系统本身一部分的库则放到/usr/local/lib下面。 ...

2014-04-14 · 2 min · 405 words · -

audio, 音量, 静音, ALSA

audio, 音量, 静音, ALSA ubuntu系统的声音太小,通过终端调高 alsamixer linux audio, 音量,静音 # archlinux+kde 不需要手动修改默认静音设置, 安装alsa-utils, plasma-pa后重启即可。 sudo pacman -S alsa-utils #kde sudo pacman -S plasma-pa # gnome sudo pacman -S gnome-alsamixer 调音量 alsamixer ArchLinux 安装完没有声音 解除静音 amixer -c 0 sset 'Master',0 100%,100% unmute http://blog.csdn.net/weed_hz/article/details/9226055 ALSA https://segmentfault.com/a/1190000002918394 高级 Linux 声音体系 (Advanced Linux Sound Architecture,ALSA)是Linux中提供声音设备驱动的内核组件,用来代替原来的开放声音系统 (Open Sound System,OSSv3)。除了声音设备驱动,ALSA还包含一个用户空间的函数库,以方便开发者通过高级API使用驱动功能,而不必直接与内核驱动交互。 Arch 默认的内核已经通过一套模块提供了 ALSA,不必特别安装。 udev 会在系统启动时自动检测硬件,并加载相应的声音设备驱动模块。这时,你的声卡已经可以工作了,只是所有声道默认都被设置成静音了。

2014-03-30 · 1 min · 59 words · -

linux sha1sum

linux sha1sum Print or check SHA1 (160-bit) checksums. With no FILE, or when FILE is -, read standard input. sha1sum {file} If you want to send the file together with its sha1sum output redirect the output to a file: sha1sum {file} > {file}.sha1 Send both files and the other party can do a… sha1sum -c {file}.sha1 It should show OK if the sha1 is correct.

2014-03-22 · 1 min · 65 words · -

putty

putty ssh 超时 http://blog.fens.me/putty-timeout/ 用Putty进行SSH连接的时候,如果几分钟没动,就会出现断线的情况,然后Putty客户端就死了。 为了解决这个问题,我们需要让客户端与Server端,一直保持发包状态,就可以避免Putty断线的情况。 操作如下: putty –>Connection –> Seconds Between keepalives –>60 远程桌面 看不到 鼠标指针 https://support.huawei.com/enterprise/zh/knowledge/EKB1000027195 windows版本: windows server 2008 R2 Standard 在控制面板中搜索"鼠标",选择"更改鼠标指针的外观 在"指针"标签页中,在"自定义"栏目里,找到"文本选择"项; 选择"文本选择",然后"浏览"定义鼠标图形,在弹出的对话框中选择"beam_r.cur",确认即可。 根因 鼠标在putty (或者某些黑色编辑器) 中光标不能自动反白,可通过更改光标的样式来解决看不到光标的问题。 win10 控制面板中搜索"鼠标 " 点击 “更改指针大小 和颜色” 选择 黑色

2014-03-13 · 1 min · 39 words · -

deluged

deluged docker run \ -d \ --name=deluge \ --net=host \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Asia/Shanghai \ -v deluge-config:/config \ -v deluge-downloads:/downloads \ --restart unless-stopped \ linuxserver/deluge #debian apt-get update apt-get install deluged deluge-web #运行 deluge守护进程 deluged 和web控制端 deluged nohup deluge-web & 用浏览器访问 http://ip:8112 默认密码是 deluge http://www.jianshu.com/p/48feb68b3b30 http://dev.deluge-torrent.org/wiki/UserGuide

2014-03-02 · 1 min · 50 words · -

linux下休眠/待机命令

linux下休眠/待机命令 命令行工具hibernate 安装 hibernate sudo aptitude install hibernate # sleep ,系统内存映象将写入 swap 区后关机 sudo hibernate-disk # suspend ,就是挂起。 sudo hibernate-ram #配置hiberante sudo dpkg-reconfigure hibernate 主要是休眠唤醒密码。 if you cat /sys/power/state mem disk you can echo “mem” > /sys/power/state 这相当于待机 echo “disk” > /sys/power/state 这相当于休眠 from http://linux.chinaunix.net/bbs/viewthread.php?tid=1057578 命令行中执行如下: [root@fsc feng]# file /sys/power/state /sys/power/state: ASCII text [root@fsc feng]# cat /sys/power/state standby mem disk [root@fsc feng]# echo “mem”>/sys/power/state ...

2014-03-02 · 2 min · 220 words · -

usermod

usermod # add user to docker group sudo usermod -aG docker $USER 禁止用户登录 usermod -s /sbin/nologin user0 应用举例: 将 newuser2 添加到组 staff 中 usermod -G staff newuser2 修改 newuser 的用户名为 newuser1 usermod -l newuser1 newuser 锁定账号 newuser1 usermod -L newuser1 解除对 newuser1 的锁定 usermod -U newuser1 功能说明: 修改用户帐号。 语法: usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ][用户帐号] 补充说明: usermod可用来修改用户帐号的各项设定。 参数: ...

2013-12-01 · 1 min · 87 words · -

Raspberry Pi配置为无线路由器

Raspberry Pi配置为无线路由器 http://www.cnblogs.com/DaochenShi/p/3152981.html 因为自己有个RPi,但是之前用的8188CUS芯片的无线网卡不支持,虽然当时买的时候是为了让笔记本连双WiFi的,因此只挑了个最便宜的。后来发现没法在RPi上面做AP,于是就又重新买了个。国内也有树梅派的论坛讨论过哪些无线网卡的支持,发现Ralink的芯片可以,因此就再花了34块钱买了个腾达的W331M,使用最新的Raspbian内核来进行操作 (非最新的话可能需要自己编译驱动) 。 以下是结合上面的参考链接给出的如何将RPi搭建为一个路由器: 首先是必备材料: RaspberryPi B版 (就是带有线网卡的那个版) ,内存512/256都可以,我的是256的。 一个已经可以正常运行的SD卡,这个如何准备我在我的另外一篇随笔当中提到过,所以这里不再赘述。 一个可以支持AP模式的无线网卡。 有线网卡也得联网。 然后是必备技能: 如果你是无显示器运行的,则需要会使用nano (vi也可以) 如果你是有显示器运行的,那么可以在图形界面下面以root或者sudo来运行文本编辑器 总之,就是你得会编辑文本文件才可以进行下面的操作。 感谢原文给出的驱动提示,这里也抄一下。请确认无线网卡支持AP模式或者Master模式,已知下列网卡的具体情况: Edimax 不支持 Access Point AirLink 101 / AWL5088 不支持 Access Point Ralink RT5370 支持 Access Point 想看你使用的是那种芯片?用lsusb吧!(省略了部分输出) pi@raspberrypi ~ $ lsusb … Bus 001 Device 007: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter 呼……一大波前提说完了,下面要干正事了! 先说一下大概步骤: 打开WiFi 指定IP,也就是建立一个WiFi局域网 使用NAT,也就是能让你WiFi网络和有线网络可以通信。 正文开始了: 安装软件 sudo apt-get install hostapd udhcpd 配置DHCP,也就是编辑文件/etc/udhcpd.conf ,基本上按照下列内容来做: <img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /> start 192.168.42.2 # This is the range of IPs that the hostspot will give to client devices. end 192.168.42.20 interface wlan0 # The device uDHCP listens on. remaining yes opt dns 8.8.8.8 4.2.2.2 # The DNS servers client devices will use. opt subnet 255.255.255.0 opt router 192.168.42.1 # The Pi’s IP address on wlan0 which we will set up shortly. opt lease 864000 # 10 day DHCP lease time in seconds ...

2013-12-01 · 2 min · 357 words · -

iptables basic

iptables basic iptables 是 Linux 内核集成的 IP 信息包过滤系统。该系统用于在 Linux 系统上控制 IP 数据包过滤和防火墙配置 iptables 操作的是 2.4 以上内核的 netfilter。所以需要 linux 的内核在 2.4 以上。其功能与安全性远远比其前辈 ipfwadm, ipchains 强大,iptables大致是工作在OSI七层的二、三、四层,其前辈ipchains不能单独实现对tcp/udp port以及对mac地址的的定义与操作 iptables-nft iptables vs. iptables-nft https://developers.redhat.com/blog/2020/08/18/iptables-the-two-variants-and-their-relationship-with-nftables#the_iptables_rules_appear_in_the_nftables_rule_listing iptables 包含4个表,5个链 其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度. 4个表: filter, nat, mangle, raw,默认表是 filter (没有指定表 ( -t ) 的时候就是filter表) 。 表的处理优先级: raw>mangle>nat>filter 4 个表 filter: 一般的过滤功能, 这是默认的表,包含了内建的链 INPUT (处理进入的包)、FORWARD (处理通过的包) 和OUTPUT (处理本地生成的包) 。 nat: 用于nat功能 (端口映射,地址映射等),对应的链: PREROUTING (修改到来的包)、OUTPUT (修改路由之前本地的包) 、POSTROUTING (修改准备出去的包) ,centos6没有input链,centos7 有 input 链。 mangle: 用于对特定数据包的修改, 对应的链: PREROUTING (修改路由之前进入的包) ,input, OUTPUT (修改路由 IPTABLES 之前本地的包), forward, postrouting raw: 优先级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能 5 个链: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING PREROUTING: 数据包进入路由表之前 INPUT: 通过路由表后目的地为本机 FORWARD: 通过路由表后, 目的地不为本机 OUTPUT: 由本机产生, 向外转发 POSTROUTIONG: 发送到网卡接口之前 iptables 规则的语法 iptables [-t table] COMMAND chain CRETIRIA -j ACTION -t table : 3个filter nat mangle COMMAND: 定义如何对规则进行管理 chain: 指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的 CRETIRIA:指定匹配标准 -j ACTION :指定如何进行处理 iptables [-t table] COMMAND chain CRETIRIA -j ACTION iptables [-t table] -[AD] chain rule-specification [options] iptables [-t table] -I chain [rulenum] rule-specification [options] iptables [-t table] -R chain rulenum rule-specification [options] iptables [-t table] -D chain rulenum [options] iptables [-t table] -[LFZ] [chain] [options] # 创建新的链 iptables [-t table] -N chain iptables [-t table] -X [chain] iptables [-t table] -P chain target [options] iptables [-t table] -E old-chain-name new-chain-name # 创建链 iptables -t mangle -N chain0 指定链 iptables -t filter -L FORWARD nf_conntrack iptalbes 会使用 nf_conntrack 模块跟踪连接,而这个连接跟踪的数量是有最大值的,当跟踪的连接超过这个最大值,就会导致连接失败。 通过命令查看 ...

2013-11-10 · 7 min · 1412 words · -

DM, DE, WM

display manager(DM), 显示管理器, sddm, gdm3, lightdm DE(Desktop Environment) DE就是 KDE Gnome Xfce这类大而全的软件, 每个DE都包含了WM , kde 的wm 是kwin, gnome也有自己的wm, 除此之外, DE还包含了很多其他的配套软件, 而WM只是DE的子集.DE的优点在于用户友好, 桌面配套软件高度图形化, 符合很多从windows来的用户的使用习惯, 并且有丰富的特效. 但是DE的缺点很明显也很致命: 复杂 并且窗口操作效率和windows一样低下或者在经过用户设置后要稍微好一些. WM(window manager) sddm gdm - GNOME Display Manager kdm - KDE Display Manager xdm - X Display Manager 我们先不讨论xdm/gdm/kdm这些东西。而是先看看启动X最直接的方式。首先来认识两个重要的文件,一个是X视窗启动文件-xinitrc,另外一个就是X视窗资源文件-Xdefaults. X视窗启动文件-xinitrc 事实上,我们一般执行startx来启动X Window System,其中startx就是xinit的前端界面[front-end].倘若我们以startx或xinit启动X,这指令会启动X server并且会执行$HOME/.xinitrc文件内的所设置的指令。倘若 $HOME没有这个文件,则系统会使用内定的的配置文件/etc/X11/xinit/xinitrc。而事实上xinitrc文件一般只包含有启动X时所要执行clients的shell script,里面定义一些指令和shell script,让X启动时,可以遵照里面的shell script来启动必要的应用程序。 例如我的简单而又实用的的$HOME/.xinitrc的内容如下: LANG=zh_CN.GB2312 LC_ALL=zh_CN.GB2312 LC_CTYPE=zh_CN.GB2312 KDE_LANG=zh_CN.GB2312 export LANG LC_ALL LC_CTYPE KDE_LANG export XMODIFIERS=@im=Chinput /usr/bin/chinput & exec kde3 killall chinput 对于更为详细的 $HOME/.xinitrc,你可以找更专业的书籍来看,我的目标是越简单越好。前面的大家应该都比较清楚吧。先设一些环境变量,再设下一些输入法(我用的是智能五笔), 接下来是启动视窗管理程序kde3,注意了: kde3用shell script的exec描述所执行的,这造成执行xinit程序的shell会被执行kde3的shell所取代。所以一旦kde3程序结束,就会跳出 shell,相对地,xinit将会跟着结束,X Server将关闭。这正是 X Window Manager 执行的方式。必须确定在.xinitrc中最后执行的是指令是以exec为开头的的命令执行X Windows Manager,而且不应该加上&放在一些背景执行,不然,那些指令也毫无意义。后面的killall chinput是告诉要结束chinput,不然极有可能会因为chinput的原因,会造成一些问题。这是最为简单的桌面设置。倘若你还要启动更多的程序和设置,都可以在前面加的。只要你在你的$HOME/.xinitrc文件中稍加增加便可做到,但要记住加在X Window Manager执行段落之前。 ...

2013-11-08 · 3 min · 545 words · -

TCP Keep-Alives

TCP Keep-Alives https://zhuanlan.zhihu.com/p/28894266 https://datatracker.ietf.org/doc/html/rfc1122#page-101 当客户端端等待超过一定时间后自动给服务端发送一个空的报文,如果对方回复了这个报文证明连接还存活着,如果对方没有报文返回且进行了多次尝试都是一样,那么就认为连接已经丢失,客户端就没必要继续保持连接了。如果没有这种机制就会有很多空闲的连接占用着系统资源。 KeepAlive并不是TCP协议规范的一部分,但在几乎所有的TCP/IP协议栈(不管是Linux还是Windows)中,都实现了KeepAlive功能。 如何设置它? 在设置之前我们先来看看KeepAlive都支持哪些设置项 KeepAlive默认情况下是关闭的,可以被上层应用开启和关闭 tcp_keepalive_time: KeepAlive的空闲时长,或者说每次正常发送心跳的周期,默认值为7200s(2小时) tcp_keepalive_intvl: KeepAlive探测包的发送间隔,默认值为75s tcp_keepalive_probes: 在tcp_keepalive_time之后,没有接收到对方确认,继续发送保活探测包次数,默认值为9(次) 在Linux内核设置 KeepAlive默认不是开启的,如果想使用KeepAlive,需要在你的应用中设置SO_KEEPALIVE才可以生效。 查看当前的配置: cat /proc/sys/net/ipv4/tcp_keepalive_time cat /proc/sys/net/ipv4/tcp_keepalive_intvl cat /proc/sys/net/ipv4/tcp_keepalive_probes 在Linux中我们可以通过修改 /etc/sysctl.conf 的全局配置: net.ipv4.tcp_keepalive_time=7200 net.ipv4.tcp_keepalive_intvl=75 net.ipv4.tcp_keepalive_probes=9 添加上面的配置后输入 sysctl -p 使其生效,你可以使用 sysctl -a | grep keepalive 命令来查看当前的默认配置 如果应用中已经设置SO_KEEPALIVE,程序不用重启,内核直接生效

2013-10-20 · 1 min · 41 words · -

debian VSFTPD

debian VSFTPD install vsftpd sudo apt-get install vsftpd 1. 匿名服务器的连接 (独立的服务器) 在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项: Anonymous_enable=yes (允许匿名登陆) Dirmessage_enable=yes (切换目录时,显示目录下.message的内容) Local_umask=022 (FTP上本地的文件权限,默认是077) connect_from_port_20=YES 启用FTP数据端口的数据连接,http://www.wiloon.com/?p=3234 Xferlog_enable=yes (激活上传和下传的日志) Xferlog_std_format=yes (使用标准的日志格式) Ftpd_banner=XXXXX (欢迎信息) Pam_service_name=vsftpd (验证方式) * Listen=yes 这将告诉vsftpd工作于standalone模式。不要从inetd中运行该设定下的vsftpd,否则将不会工作,你将得到错误信息: could not bind listening socket. 功能: 只能连接FTP服务器,不能上传和下传 注: 其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项 2. 开启匿名FTP服务器上传权限 在配置文件中添加以下的信息即可: Anon_upload_enable=yes (开放上传权限) Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件) Write_enable=yes (开放本地用户写的权限) Anon_other_write_enable=yes (匿名帐号可以有删除的权限) 3. 开启匿名服务器下传的权限 在配置文件中添加如下信息即可: Anon_world_readable_only=no 注: 要注意文件夹的属性,匿名帐户是其它 (other) 用户要开启它的读写执行的权限 (R) 读–下传 (W) 写–上传 (X) 执行–如果不开FTP的目录都进不去 4.普通用户FTP服务器的连接 (独立服务器) 在配置文件中添加如下信息即可: Local_enble=yes (本地帐户能够登陆) Write_enable=no (本地帐户登陆后无权删除和修改文件) ...

2012-05-26 · 3 min · 460 words · -