首页
关于本博客
友情链接
推荐
linux/shell
Search
1
LEDE官方固件安装中文语言包的方法
11,081 阅读
2
LEDE固件踢出弱信号客户端,实现WiFi无缝漫游脚本
9,162 阅读
3
基于CloudFlare API的纯Shell动态DNS(DDNS)脚本
8,135 阅读
4
一次OpenVPN交叉编译笔记
6,641 阅读
5
利用iptables的string模块来屏蔽域名(关键词匹配)
6,091 阅读
study
OpenWrt/LEDE
网络技术
数通
HCNP/CCNP
linux
shell
CentOS
Ubuntu/Debian
php
Linux应用
C#
C/C++
虚拟化
IDC
杂项
MySQL
运维笔记
zabbix
seafile
openvpn
QEMU/KVM
windows
html
互联网应用
IP地址段汇总
登录
Search
标签搜索
nginx
openvpn
cloudflare
seafile
iptables
openssl
linux
lede
letsencrypt
openvpn配置模板
ftp
nas
vsftpd
seafile服务器
Linux启动脚本
ddns
SSH
seafile网盘
openwrt
CentOS
自渡
累计撰写
69
篇文章
累计收到
1
条评论
首页
栏目
study
OpenWrt/LEDE
网络技术
数通
HCNP/CCNP
linux
shell
CentOS
Ubuntu/Debian
php
Linux应用
C#
C/C++
虚拟化
IDC
杂项
MySQL
运维笔记
zabbix
seafile
openvpn
QEMU/KVM
windows
html
互联网应用
IP地址段汇总
页面
关于本博客
友情链接
推荐
linux/shell
搜索到
69
篇与
自渡
的结果
2018-09-16
记一次CentOS安装网卡驱动的记录
随着项目的增多,我愈发感觉树莓派的性能真是垃圾,先不说处理器,在外接硬盘状态下,传输数据时,流量一大网卡就出毛病,疯狂掉线,据说是网卡与USB共用芯片导致的,于是我又入手了一台D525的惠普主机,自然而然地给它装上CentOS6,没想到坑爹的是,这个X86主机也会在流量大时断网,检查后发现:CentOS装机时,默认的网卡驱动与网卡不匹配,导致表面看上去没问题,获取IP也正常,但是一旦进行大流量传输时,便会断网。网上给出了很多安装驱动的办法,但全都没用,什么瑞昱官网下载驱动,然而却一直报错,README上也没有明确说明所需依赖。后来才发现直接在pkgs.org上就可以找到相关驱动并直接通过rpm的办法安装。安装方法通过lshw命令查看到的网卡信息,网卡型号为RTL8111/8168/8411,然而系统预装的驱动却是RTL8169,驱动明显与硬件不匹配,难怪会断网。description: Ethernet interface product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller vendor: Realtek Semiconductor Co., Ltd. physical id: 0 bus info: pci@0000:01:00.0 logical name: eth0 version: 06 serial: 8c:dc:d4:6c:01:a9 size: 100Mbit/s capacity: 1Gbit/s width: 64 bits clock: 33MHz在pkgs.org上查找rtl8168网卡驱动的rpm包然后下载到本地,通过rpm命令即可安装rpm -ivh kmod-r8168-8.045.08-1.el6.elrepo.x86_64.rpm装完驱动后,就再也没有出现断网的情况了,lshw命令呈现的结果里,driver已变成r8168了
2018年09月16日
3,709 阅读
0 评论
0 点赞
2018-09-11
在Linux下编译安装transmission
transmission简介Transmission是一个功能强大的开源BT客户端,它能够完美地在Windows、Linux、MacOS下运行,支持磁力链接,BT下载。官网:https://transmissionbt.com根据官方介绍,其功能特性有:1、使用的资源比其他客户端少2、原生Mac,GTK +和Qt GUI客户端3、以守护进程运行4、可以由Web和终端客户端进行远程控制5、本地Peer发现6、完全加密,支持DHT,μTP,PEX和磁力链接Transmission在Linux下的安装Debian系操作系统可以直接使用apt进行安装,而RedHat系一般是从源码编译安装。编译环境:CentOSTransmission版本:2.94首先安装编译前所需的依赖yum -y install gcc gcc-c++ make automake libtool gettext openssl-devel libevent-devel intltool libiconv wget从官网下载相关源码到本机并解压cd /usr/src && wget https://github.com/transmission/transmission-releases/raw/master/transmission-2.94.tar.xz tar -xvf transmission-2.94.tar.xz开始进行编译cd transmission-2.94 && ./configure CFLAGS=-liconv make && make install修改配置文件编译并完成后,会生成五个二进制文件,分别为:transmission-create transmission-daemon transmission-edit transmission-remote transmission-show通常在启动时只需要执行transmission-daemon这个文件。在第一次执行该文件时,可通过附加-g选项并指定一个路径来保存transmission,若未加-g选项,则默认配置文件settings.json在/root/.config/transmission目录下(如果是以root身份执行的话)。以下是settings.json的配置模板,只需修改注释的地方即可{ "alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": false, "blocklist-url": "http://www.example.com/blocklist", "cache-size-mb": 4, "dht-enabled": true, "download-dir": "/usr/local/transmission/downloads", #此处应填写下载目录 "download-queue-enabled": true, "download-queue-size": 5, "encryption": 1, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "", "incomplete-dir-enabled": false, "lpd-enabled": false, "message-level": 2, "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 200, "peer-limit-per-torrent": 50, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "default", "pex-enabled": true, "port-forwarding-enabled": true, "preallocation": 1, "prefetch-enabled": true, "queue-stalled-enabled": true, "queue-stalled-minutes": 30, "ratio-limit": 2, "ratio-limit-enabled": false, "rename-partial-files": true, "rpc-authentication-required": true, "rpc-bind-address": "0.0.0.0", #RPC监听的网卡,0.0.0.0代表监听所有网卡 "rpc-enabled": true, #开启通过RPC连接 "rpc-host-whitelist": "", "rpc-host-whitelist-enabled": true, "rpc-password": "{xxx", #填写RPC密码,填写后重启会自从转变为hash值 "rpc-port": 9091, #RPC端口 "rpc-url": "/transmission/", "rpc-username": "transmission", #RPC用户名 "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, #关闭白名单,否则未在白名单内的IP将无法通过web访问 "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": false, "umask": 18, "upload-slots-per-torrent": 14, "utp-enabled": true }Transmission的启动及其他注意点配置好修改好配置文件settings.json后,直接执行transmission-daemon即可令transmission在后台运行,要访问控制台时,只需要通过http协议在浏览器输入服务器IP加RPC端口,并且输入用户名密码即可。(如http://x.x.x.x:port)在服务器上使用transmission下载版权电影时务必要确定主机所属商家是否无视DMCA(数字千年版权法),否则很容易因掉入版权方蜜罐而收到律师函。一般在版权管理宽松的欧洲某些国家,还有中国大陆是无视DMCA的,可以放心地使用。
2018年09月11日
2,346 阅读
0 评论
0 点赞
2018-08-20
利用iptables的string模块来屏蔽域名(关键词匹配)
简介iptables功能十分丰富,它能够对网关下带客户端的上网行为进行有效的控制,下面介绍如何利用它的string模块来对客户端的上网行为进行控制。string模块是iptables的一个扩展模块,目前大多数系统都已集成了该模块,少数较老的openwrt路由如果没有的话,可通过opkg命令安装。应用场景部署于基于Linux操作系统的网关上,可以是路由器,也可以是挂于旁路的防火墙、审计系统,只要可收集到客户端的上网流量即可。保护客户端数据安全,避免被某些无底线的互联网公司收集个人数据。屏蔽令人不适的广告。操作命令示范如果要屏蔽一个具体的网站,具体思路是让防火墙匹配客户端请求的数据包中的关键字,然后将该包丢弃,使客户端放弃连接。比如百度地图在定位的同时会收集当前IP地址所对应的物理位置。美名其曰收集地理位置提供更好的服务,实则令人厌烦,暴露了用户的行踪,时常有人代理服务器IP被定位到自家门口的情况。该API目前已关闭,然而不仅仅是百度地图,其他某些地图厂家也会这么干。而客户端向百度上报自己地点的数据包会携带相应的域名,即HTTP请求的Host头部(api.map.baidu.com和map.baidu.com),基于此原理即可将域名作为关键词来进行匹配。iptables -I FORWARD 1 -p tcp -m multiport --dports 80,443 -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG PSH,ACK -m string --string "api.map.baidu.com" --algo bm -j REJECT --reject-with tcp-reset iptables -I FORWARD 1 -p tcp -m multiport --dports 80,443 -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG PSH,ACK -m string --string "map.baidu.com" --algo bm -j REJECT --reject-with tcp-reset客户端的数据经由网关发出时,经过的是FORWARD链,所以应在它上面配置规则,multiport模块用于匹配多端口。即使它使用了SSL来传输数据,通过443端口传送时,我们仍然能从其中Client Hello数据包内的server_name(SNI)字段得知请求的主机名。这样,即使传输内容虽已加密,但是请求的主机名是明文传送的,iptables仍可以通过这一点来进行匹配。--tcp-flags可以更精确地匹配不同状态的数据包,避免错杀,若无额外配置该选项,则很可能将baidu的其他业务也屏蔽。--algo bm是匹配算法,默认是使用bm,当然也有较为复杂的kmp算法。最后的--reject-with tcp-reset较为重要的作用是将连接重置,令客户端无法与服务器建立连接。当然,这个操作已经将整个百度地图的服务全部屏蔽,客户端无法通过该局域网使用百度地图。而实际情况,我们常在室外(LTE网络)使用它,在室内基本是用不到的。题外话对于防火墙来说,通过返回TCP RST数据包给客户端来达到终止客户端的连接是非常合适的,因为在TCP/IP协议中,RST包是用来关闭异常的连接的,客户端一旦收到该数据包,将会立即关闭对主机的连接,不再尝试重连,应用会发出“连接已重置”或者"Connection reset by peer"的错误提示。而若将REJECT改为DROP,防火墙则是默默地丢弃数据包,不明真相的客户端迟迟未收到服务器回应,会多次发包尝试重连,防火墙则必须多次丢弃该数据包。因此REJECT与DROP相比,前者对防火墙的资源消耗少,显然采取它是明智的,这也与某些ISP的网络审计和过滤系统原理是类似的。防火墙被设计出来的目的就是为了保证内部网络的安全,将关键词过滤这一功能统一部署于网关将给防火墙后的客户端带来极大的方便和安全性,可以阻止无底线公司上传用户敏感数据,屏蔽流氓软件广告推送等等。
2018年08月20日
6,091 阅读
0 评论
0 点赞
2018-08-18
开源虚拟隧道创建程序VTun编译及配置详解
程序简介vtun是一款开源、轻量级的网络虚拟隧道创建程序,VTun可以通过TCP/IP协议为企业在公网上建立安全的VPN隧道。VTun的功能与OpenVPN类似,都是使用了Linux内核中的虚拟网卡TUN/TAP设备,同时它也支持PPP设备,能够提供多种形式的隧道。但是VTun与OpenVPN的区别是:VTun的隧道是一对一的,即隧道内仅有客户端和服务器两端,不像OpenVPN一样可以设置一个网段和分配不同IP给多个客户端,灵活性略逊后者。 VTun更适合应用于企业总公司与分公司远程组网的场景,直接部署于网关。部署和测试的系统环境客户端:Linux CentOS 7.3 ARM(树莓派3b)服务端:Linux CentOS 6.9 x86_64 (KVM VPS主机)系统内核必须有TUN/TAP和PPP模块,VPS主机须母机的支持。这里只测试RedHat系的系统,Debian系的类似。部署和测试的系统环境下载及编译程序先安装依赖yum install -y openssl openssl-devel zlib zlib-devel bison byacc flex gcc wget ppp lzo lzo-devel git下载程序源码cd /usr/src && git clone https://github.com/VTun/VTun cd /usr/src/VTun && ./configuremake && make install对配置文件进行修改编译完成后,默认的配置文件在/etc/vtund.conf,二进制文件在/sbin/vtund。程序启动时,将会通过读取/etc/vtund.conf配置文件来建立虚拟隧道。该文件内也给出了许多配置例子以供参考。VTun所能提供的隧道类型有IP隧道(tun)、以太网隧道(tap)、串行隧道(支持所有通过串行隧道工作的协议,如PPP、SLIP等等)、pipe隧道(支持通过Unix pipe工作的隧道)。用户可以根据环境的需求来选择合适的隧道类型以及协议。我仅测试了TUN和PPP隧道,而PPP隧道在进行连接时总是报找不到伪终端的错误(Can't allocate pseudo tty,No such file or directory.),调试多次无果,且由于相关资料较少,最终放弃了PPP隧道,如果有大佬知道如何解决还请留言多多指教。而TUN隧道的测试较为顺利,下面贴出TUN/TAP隧道的配置:TUN/TAP隧道服务端配置:#option字段是全局选项,包括监听的端口及定义使用到的二进制文件目录 options { port 5000; #服务器所监听的端口,默认为5000 bindaddr { iface eth0; }; #服务监听的网卡,一般为eth0 syslog daemon; #开启daemon模式,即守护模式,使程序在后台运行 ppp /usr/sbin/pppd; #这是一些二进制文件的目录,默认无需改动 ifconfig /sbin/ifconfig; route /sbin/route; firewall /sbin/ipchains; ip/sbin/ip;}#此处是定义默认会话的选项,将会应用于整个文件内的所有隧道 default { compress no; #compress决定是否对数据压缩,默认为no,压缩方法可选zlib和lzo speed 0; #speed选项可对隧道总速度进行限制,默认为0不限制,限速单位为KB/s } #以下是配置隧道选项,可一次性添加多个字段,即多条隧道,下列以tunnel1为例 tunnel1 { passwd XXXXXX; #此处定义隧道的密钥 type tun; #type选项可根据需求选择tun或者tap proto tcp; #proto是选择隧道通信所使用的协议,在国内运营商对UDP包大幅丢包的状态下,建议选择TCP以建立可靠的连接 device tun0; #隧道建立后,tun虚拟网卡的名称,不得与当前已有的设备重名 compress no; #压缩数据,同default字段里的compress encrypt no; #选择是否加密,加密有多种选项,当你不认为你处在一个可靠的网络内时,建议启用,默认加密方式为blowfish128ecb keepalive yes; # 该选项可隔一段时间ping对端以确认会话的状态,若客户端在NAT网关或者防火墙后,建议开启 stat yes; # 在日志里面记录隧道连接状态 #up字段是隧道在连接后,所执行的命令,即开启一个虚拟网络设备 up { #该选项表示隧道内,本地IP为10.221.96.10,对端IP为10.221.96.11,客户端在配置时应与之相对应 ifconfig "%% 10.221.96.10 pointopoint 10.221.96.11 mtu 1450"; }; down { #在隧道关闭时所执行的命令,即关闭网卡 ifconfig "%% down"; }; }TUN/TAP隧道客户端配置options { port 5000; timeout 60; #此处选项是设置连接到对端的超时时间,单位为秒 ppp/usr/sbin/pppd; ifconfig/sbin/ifconfig; route/sbin/route; firewall/sbin/ipchains; ip/sbin/ip; } #tunnel1字段是为了连接上面服务端的tunnel1隧道 tunnel1 { passwd XXXXXX; #隧道密码,只有与服务器一致才可连接成功 #以下选项同上 type tun; proto tcp; compress no; encrypt no; keepalive yes; stat yes; device tun0; persist yes; #开启此选项后,当物理网络出现问题时,可确保虚拟网卡tun设备不会处于down状态 up { ifconfig "%% 10.221.96.11 pointopoint 10.221.96.10 mtu 1450"; #该选项应该与服务端相对应,IP不得冲突,mtu应保持一致 }; down { ifconfig "%% down"; }; }启动VTunVTun的二进制文件为/sbin/vtund;服务端的启动命令为:vtund -s -f /etc/vtund.conf客户端的启动命令为:vtund -f /etc/vtund.conf tunnel1 $SERVER_IP其中-s选项表示程序以服务端运行,-f表示从配置文件中读取,在客户端启动命令中,tunnel1作为隧道的名称,应该加入到vtund -f /etc/vtund.conf后面,并且最后应填上对端服务器的外网IP。总结VTun作为轻量级网络隧道软件,与OpenVPN相比,配置也非常简单,根据官方介绍,它同OpenVPN一样也可以采用SSL来确保服务器不被仿冒,只能建立一对一隧道这一特性,决定了它更适合部署在网关/路由设备上,而openvpn极高的安全性以及多客户端的特性,决定了它更适合用于客户端-服务器这一模式,如出差员工通过手机、笔记本电脑连接至公司网关这一情景,能够保证员工在安全未知的网络环境下,仍然能通过SSL/TLS来建立安全的连接。
2018年08月18日
4,930 阅读
0 评论
0 点赞
2018-08-15
在LNMP环境下用Cloudreve搭建轻量级网盘系统
简介cloudreve是一款国产的轻量级网盘系统,基于ThinkPHP构建,定位为公私兼备的网盘系统。详细介绍可查看作者在v2ex发布的说明:https://www.v2ex.com/t/429092先前用过NextCloud、OwnCloud、可道云等一些云盘系统,但是都不如我意,前二者都太过臃肿,比如NextCloud加载速度过慢,且对主机性能还有PHP要求较高,所以我用了一段时间便放弃了,到后来我发现了Cloudreve,这确实是一款优秀的云盘系统,加载速度快,且在线编辑文档、浏览视频图片等网盘的基本功能都一一具备。据作者介绍,目前已实现的功能有:快速对接多家云存储,支持七牛、又拍云、阿里云 OSS、AWS S3,当然,还有本地存储可限制单文件最大大小、MIMEType、文件后缀、用户可用容量图片、音频、视频、文本、Markdown、Ofiice 文档 在线预览移动端全站响应式布局文件、目录分享系统,可创建私有分享或公开分享链接用户个人主页,可查看用户所有分享多用户系统、用户组支持初步完善的后台,方便管理拖拽上传、分片上传、断点续传、下载限速(*实验性功能)多上传策略,可为不同用户组分配不同策略用户组基础权限设置WebDAV 协议支持服务器配置要求及配置文件环境:Linux+nginx+MySQL+PHPPHP版本要求:PHP5.6及以上,要求有curl、fileinfo、gd扩展。获取程序源码:git clone https://github.com/HFO4/Cloudreve 创建web目录及用phpmyadmin配置好Cloudreve所使用的数据库后,将源码包解压到web目录,将mysql.sql导入数据库。导入完毕后,将目录下的mysql.sql和deploy.sh删除,并保证runtime目录有写入权限(可使用chown -R web用户 web目录 命令将整个目录的拥有者设为web用户拥有),同时,为了安全,须配置SSL证书,可使用letsencrypt的免费证书。Nginx的配置文件:server { listen 80; server_name pan.yourdomain.com; #你的域名 rewrite ^(.*)$ https://pan.yourdomain.com; #配置302跳转到https } server #https配置 { listen 443; ssl on; ssl_certificate /etc/https/yourdomain.com/server.crt; #证书存放目录 ssl_certificate_key /etc/https/yourdomain.com/server.key; #私钥存放目录 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20- draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5"; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; server_name pan.yourdomain.com; root 填写你的web目录; index index.php; access_log 填写生成日志目录; #配置日志 location ~ [^/]\.php(/|$) #开启php { fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; fastcgi_split_path_info ^(.+?\.php)(/.*)$; set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; try_files $fastcgi_script_name =404; } location / { client_max_body_size 2000M; #最大上传文件大小配置,须另外在php.ini里面配置 if (!-e $request_filename) #重写规则配置 { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } location ^~ /public/uploads/ #若干安全配置,禁止未授权客户直接访问敏感目录及文件 { deny all; } location ^~ /public/thumb/ { deny all; } location ^~ /runtime/log/ { deny all; } location ~ .*\.(json)?$ { deny all; } location ~ .*\.(js|css)?$ #js和css后缀文件缓存在本地,加快网页打开速度 { expires 12h; } location ~ /\. { deny all; } }
2018年08月15日
2,778 阅读
0 评论
0 点赞
1
...
7
8
9
...
14