卡片电脑(树莓派)一代B+版配置1
目录
- 概述
- 第一次运行, 并配置wifi和AP热点
- 服务自启动方法,远程控制
- 安装vi
- 时钟同步问题
- 安装看门狗程序让树莓派永不死机
- 如何让树莓派显示中文
- 安装谷歌的开源浏览器Chromium
- 配置文档config.txt说明,HDMI制式,usb供电问题
- 安装蓝牙适配器
- samba服务、nginx+php+mysql、minidlna
- 将Raspberry变:打印服务器、BitTorrent下载服务器
- 配置pptp客户端,n2n客户端,sshuttle,netcat,tor……
- 让树莓派自动识别windows格式的U盘和移动硬盘
- vpn客户端配置(将家里的网和办公网和这个移动网相通)
- VPN全局代理和路由表
==》 网址:http://t.cn/RZAJJ6S 刷新本页
第一次运行, 并配置wifi和AP热点
树莓派官方Raspbian系统下载:http://www.raspberrypi.org/downloads 按照步骤,下载操作系统镜像,写入到SD卡以后,加电启动开始第一次运行, 并配置wifi和AP热点。 第一次运行会出现配置界面,当然以后也可以通过sudo raspi-config再次进入配置。 配置中主要设定扩展可用空间,扩展SD卡剩余的空间给Raspberry使用,调整时区。 语言设置在下个章节,安装了中文字体后再设置。 我的应用场景是使用两个微型无线网卡,一个连接wifi,另一个做为无线接入点,变成一个路由器使用。 先接上网线,通过ssh登录上去,做几项初使化工作: 1.ROOT账号设置 如果你安装的是官方的 Raspbian 系统,那么默认的登录帐号为 pi 密码是 raspberry 为了方便折腾,建议第一时间启用 ROOT 账号吧~ 这个也很简单的,只需要执行一下两句命令即可: 设置root账号的密码,会让你输入两次新密码 sudo passwd root 启用 root 账号登录 sudo passwd --unlock root 2.系统升级 更改/etc/apt/source.list为: #deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi deb http://mirrors.sohu.com/raspbian/raspbian/ wheezy main contrib non-free deb-src http://mirrors.sohu.com/raspbian/raspbian/ wheezy main contrib non-free sudo apt-get update sudo apt-get upgrade PS:关于如何理解upgrade和dist-upgrade的区别: update更新软件列表信息,包括版本,依赖关系等 upgrade只是简单的更新包,不管这些依赖,它既不添加包,或是删除包。在不改变现有软件设置的基础上更新软件,不改变软件的依赖关系,当软件的依赖关系发生改变时,upgrade对此情形不处理。 dist-upgrade针对依赖关系改变的情形并作出处理,会改变配置文件,改变旧的依赖关系,添加包,删除包。 例如软件包 a 原先依赖 b c d,但是在源里面可能已经升级了,现在是 a 依赖 b c e。这种情况下,dist-upgrade 会删除 d 安装 e,并把 a 软件包升级,而 upgrade 会认为依赖关系改变而拒绝升级 a 软件包。 【个人习惯不用dist-upgrade,这个会被认为是有点风险的升级,弄不好把系统弄崩溃,除非迫切需要最新版本的情况。】 3.安装hostapd和dhcp服务器 修改/etc/sysctl.conf打开ipv4和ipv6转发 net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 无线网卡硬件兼容列表: http://elinux.org/RPi_USB_Wi-Fi_Adapters 列表中有国产Tenda的卡,购买了Tenda W311MI Wireless N Pico USB Adapter,芯片是Ralink RT5370。 某宝卖的RealTek rtl8188cu芯片的无线网卡,上网没问题,做为热点设置有问题。 pi@switch00:~$ lsusb Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter Bus 001 Device 005: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter pi@switch00:~$ lsmod | grep mac80211 mac80211 329373 3 rt2x00lib,rt2x00usb,rt2800lib cfg80211 211002 2 mac80211,rt2x00lib rtl8188cu的驱动是8192cu,为防止进入节电模式而掉线 创建文件:/etc/modprobe.d/8188cu.conf 写入如下内容: ### 修复经常断线问题 # ### 取消节电模式 Disable power saving options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1 测试无线信号: sudo iwlist wlan0 scan sudo apt-get install wpasupplicant sudo apt-get install hostapd sudo apt-get install hostap-utils sudo apt-get install isc-dhcp-server sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig #修改/etc/network/interface和/etc/dhcp/dhcpd.conf #修改/etc/default/isc-dhcp-server文件,将wlan1配置成为DHCP用的网口: #INTERFACES="wlan1" sudo vi /etc/default/hostapd 找到#DAEMON_CONF= "",修改为: DAEMON_CONF="/etc/hostapd/hostapd.conf" sudo service isc-dhcp-server restart sudo service hostapd restart 4.我使用的8188cu无线网卡能被自动识别,也能连接wifi,但是做为热点使用,驱动报错, Configuration file: /etc/hostapd/hostapd.conf nl80211: 'nl80211' generic netlink not found Failed to initialize driver 'nl80211' rmdir[ctrl_interface]: No such file or directory 先移走系统中的hostapd,然后重新编译了针对这个网卡的hostapd的驱动。 sudo apt-get autoremove hostapd cd /opt sudo wget https://github.com/segersjens/RTL8188-hostapd/archive/v1.1.tar.gz sudo tar -zxvf v1.1.tar.gz cd RTL8188-hostapd-1.1/hostapd sudo make sudo make install sudo apt-get install bridge-utils sudo service hostapd restart [ ok ] Stopping advanced IEEE 802.11 management: hostapd. [ ok ] Starting advanced IEEE 802.11 management: hostapd. 5. 客户端使用HOSTAPD无线AP时,网速不稳定,导致某些时刻无法打开网页或者其它因为网络超时导致的网络不可访问故障。 该问题主要是因为无线数据传输校验中随机种子数较少导致的无线网络数据传输时延过大导致的。 查看具体数值: cat /proc/sys/kernel/random/entropy_avail 该值一般小于1000。 安装随机数生成器(haveged) sudo apt-get install haveged sudo insserv /etc/init.d/haveged 启动随机数生成器(haveged)提高entropy_avail数值 /etc/init.d/haveged start 这样无线网络时延将恢复到正常状态。网络不在出现以上描述的问题。 6.重新启动 sudo reboot 【PS:第一次启动无线热点时的信息: root@Mina:~# hostapd -B -P /var/run/hostapd.pid /etc/hostapd/hostapd.conf Configuration file: /etc/hostapd/hostapd.conf Using interface wlan1 with hwaddr c8:8a:88:e1:99:66 and ssid "RaspII" random: Only 15/20 bytes of strong random data available from /dev/random random: Not enough entropy pool available for secure operations WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects wlan1: interface state UNINITIALIZED->ENABLED wlan1: AP-ENABLED 】 【PS:hostapd.conf配置 公共部份 # Basic configuration interface=wlan1 ssid=Rasptest channel=1 #bridge=br0 # WPA and WPA2 configuration macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 #wpa=3 wpa=2 wpa_passphrase=jeanisagirl wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP 硬件配制 第一个RaspberryPi一代B+版,用了Rtl8188cu无线usb网卡,为了用上这块卡做热点,必须从源码编译了hostapd: # Hardware configuration driver=rtl871xdrv ieee80211n=1 hw_mode=g device_name=RTL8192CU manufacturer=Realtek 第二个RaspberryPi二代B版,用了RT5370无线usb网卡,芯片产商是Ralink: # Hardware configuration driver=nl80211 ieee80211n=1 hw_mode=g device_name=RT5370 manufacturer=Ralink 修改配置文件/etc/default/hostapd 将这一行 #DAEMON_CONF="" 改为 DAEMON_CONF="/etc/hostapd/hostapd.conf" 】 |
安装看门狗程序让树莓派永不死机
开源的BCM2708芯片让树莓派拥有了硬件看门狗芯片功能,加上linux内核编译好了的bcm2708_wdog模块 加载模块 modprobe bcm2708_wdog 更改配制文件,让系统每次启动都加载 sudo vi /etc/modules #加入一行 "bcm2708_wdog" pi@switch00:~$ lsmod | grep bcm2708_wdog bcm2708_wdog 3613 1 sudo apt-get install watchdog #设置watchdog每次随系统而启动 sudo apt-get install chkconfig sudo chkconfig watchdog on sudo vi /etc/watchdog.conf 取消掉 watchdog-device = /dev/watchdog 前的注释#号,让他监控的设备指向CPU的硬件看门狗 取消掉 max-load-1 = 24 前的注释#号,当1分钟load进程超过24个的时候(一般5个就是超高负载了,再高可以认为是死机)就触发重启 #/sys/class/thermal/thermal_zone0/temp记录的是实时的温度,单位为千分之一摄氏度. temperature-device = /sys/class/thermal/thermal_zone0/temp #设置最高温度75℃ max-temperature = 75000 sudo /etc/init.d/watchdog start |
时钟同步问题
树莓派主板上没有电池,不能保存时间,因此每次重启动后需要对时。 1.使用rdate: sudo apt-get install rdate sudo /usr/bin/rdate -s time.nist.gov 2.我写了个通过http方式对时的程序在每次开机时运行: 因为http延时对时后的有误差,由ntpd服务接管再做精确对时。(一定误差范围内,ntpd才能正常校正) /sbin/everyday_gettime.sh & #!/bin/bash ### 开机十分钟后运行 # proc_start=600 ### 运行1分钟后检查是否僵住(连不上网,进程没退出), 如果是就kill # chk_run=60 ### 然后隔“24小时减去前面的时间”运行 # proc_re_run=`expr 86400 - $proc_start - $chk_run` #echo $proc_start $chk_run $proc_re_run sleep $proc_start sudo date -s "$(curl -sI http://www.baidu.com/ | grep ^Date: | cut -d' ' -f3-7)Z" > /dev/null 2>&1 sleep $chk_run tmp1=`ps -eo user,pid,etime,cmd | grep -v grep | grep "curl -sI http://www.baidu.com/" | awk '{print $2}' ` if [ "aaa" != "aaa$tmp1" ] then sudo kill -9 $tmp1 fi sleep $proc_re_run ### 执行完成后回调自已,准备下次执行 # $0 & |
如何让树莓派显示中文
系统里没有预装中文字库,所以即使在locale中改成中文,也不会显示中文,只会显示一堆方块。 安装中文字体和输入法 sudo apt-get install ttf-wqy-zenhei sudo apt-get install scim-pinyin 再次运行 sudo raspi-config 配制时区和语言 选择change_locale,在Default locale for the system environment:中选择zh_CN.UTF-8 重启后生效 |
安装谷歌的开源浏览器Chromium
cd /opt sudo wget http://goo.gl/go5yx -O install.sh sudo chmod a+x install.sh sudo ./install.sh 启动远程桌面管理后,在终端里运行chrome -disable-ipv6 & 或者点击菜单后启动chrome |
配置文档config.txt说明,HDMI制式,usb供电问题
1. 树莓派并没有传统意义上的BIOS, IO配置参数通常被存在"config.txt"这个文本文件中. 树莓派的config.txt文件会在ARM内核初始化之前被GPU读取. 这个文件存在引导分区上, 路径通常是/boot/config.txt 详细配置说明见这个网址: http://elinux.org/RPi_config.txt 翻译: http://www.shumeipai.net/thread-19043-1-1.html 通常不用去管它,当在一些显示器上没有输出时,去修改这个文件,以匹配显示器的制式。 对于在一些电视上没有输出,参考这篇文章 http://elinux.org/RPi_VerifiedPeripherals#Display_adapters HDMI->DVI-D cables you may need to change config.txt hdmi_force_hotplug=0 to =1 if your display does not receive DVI signal (the analog output is likely active). 2010版苹果MAC Mini自带的适配器可用! The HDMI to DVI-D cable provided by Apple with the 2010 Mac Mini worked. 注意潜规则: 选择自带电源输入的HDMI->VGA converter boxes,树莓派只提供50毫安给HDMI给DVI-D显示器,200毫安是最大阀值,超过易损坏。 as the PI only is designed to provide about 50mA to the (HDMI or DVI-D) monitor, and these adapters use >200mA, while the absolute maximum the PI can let through is 200mA. These adapters also thus use about half the energy that the PI (without USB devices) uses. Therefore its much better to use an adapter that has an external power input. 配置内容可能参考如下: hdmi_safe=1 overscan_left=-30 overscan_right=-30 overscan_top=-30 overscan_bottom=-30 hdmi_group=2 hdmi_mode=4 hdmi_drive=2 config_hdmi_boost=4 2. 分辨率模式看这个地址: http://elinux.org/RPiconfig#Video_mode_options hdmi_mode=4 640x480 60 Hz hdmi_mode=16 1024x768 60 Hz hdmi_mode=42 1400x1050 60 Hz hdmi_mode=47 1440x900 60 Hz hdmi_mode=60 1680x1050 85 Hz hdmi_mode=80 2560x1600 120Hz reduced blanking 3. ### USB供电不足解决 # max_usb_current=1 safe_mode_gpio=4 |
安装蓝牙适配器
硬件选择支持蓝牙4.0的适配器,和相关的键盘、鼠标、音箱,可以复用通道。 sudo apt-get install bluetooth bluez-utils bluez-compat blueman 启动蓝牙服务 service bluetooth status root@raspberrypi:/home/pi# service bluetooth status [ ok ] bluetooth is running. 正常的话应该是 [ ok ] bluetooth is running. 切换到图形界面 startx 在蓝牙图标右击 单击setup new Device 双击蓝牙图标看到连接设备 将设备成信任,下次进入系统后会自动匹配关联设备 |
samba服务、nginx+php+mysql、minidlna
一、samba服务 sudo apt-get install samba sudo apt-get install samba-common-bin 简单配置 $ sudo cat /etc/samba/smb.conf [global] log file = /var/log/samba/log.%m interfaces = 192.168.123.0/24 hosts allow = 127. 192.168.123. 192.168.0. [data0] comment = readonly file space path = /data0 read only = yes public = yes [data1] comment = share file space path = /data1 read only = no public = yes 启动服务 sudo /etc/init.d/samba restart 把pi和root设为samba的用户 sudo smbpasswd -a pi sudo smbpasswd -a root ### 系统中建立一个无目录不能登录的系统帐号guest,组号:1008,用户号:1008 groupadd --gid 1008 guest adduser --shell /bin/false --disabled-password --disabled-login --no-create-home --uid 1008 --gid 1008 guest 增加一个名为guest的samba用户 sudo smbpasswd -a guest 不设置密码,做为guest [删除方式:smbpasswd -x guest] 复杂配置——增加guest用户无密码访问 root@cathy:~# cat /etc/samba/smb.conf [global] ## 注意:所有注释单独写一行,不然在/var/log/daemon.log会看到报错 ## log file = /var/log/samba/log.%m netbios name = Cathy interfaces = 192.168.123.0/24 hosts allow = 127. 192.168.123. 192.168.0. ### guest进入他人的目录不要密码,设为share #security = share security = user ## 认证模式为User guest account = guest guest ok = yes null passwords = yes ### 这句很关键,实现无用户名无密码匿名交互的 ## map to guest = bad user [guest0] comment = readonly guests share0 path = /guest0 public = yes read only = yes writable = no printable = no available = yes browseable = yes valid users = pi guest root ## 有效的用户和组 invalid users = mysql ## 无效用户和组 #read list = samba ## 只读用户和组(如果read only = No,只读用户需要在此设置) #write list = liu ## 可读写用户和组(如果read only = Yes,可读写用户需要在此设置) [guest1] comment = writable guests share1 path = /guest1 public = yes read only = no writable = yes printable = no create mode = 0775 directory mode = 0775 available = yes browseable = yes [data0] comment = readonly file space path = /data0 read only = yes public = yes printable = no invalid users = guest [data1] comment = writable file space path = /data1 read only = no public = yes writable = yes printable = no create mode = 0775 directory mode = 0775 invalid users = guest [printers] comment = All Printers path = /var/spool/samba browseable = no read only = yes writable = no printable = yes ### 防火墙规则参考 ### iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 -m multiport --dport 139,445 -j ACCEPT iptables -A INPUT -i eth0 -p tcp -s 192.168.1.0/24 -m multiport --dport 139,445 -j ACCEPT iptables -A INPUT -i eth0 -p udp -s 192.168.100.0/24 -m multiport --dport 137,138 -j ACCEPT iptables -A INPUT -i eth0 -p udp -s 192.168.1.0/24 -m multiport --dport 137,138 -j ACCEPT ### 跨网关samba访问参考下面一段: iptables -t nat -I PREROUTING -p tcp -d 192.168.1.9 -m mport --dport 139,445 -j DNAT --to-destination 192.168.18.1 iptables -I INPUT -p tcp -m mport --dport 139,445 -j ACCEPT ### 我在路由器做了路由打通,不需要这一段了。 二、nginx+php+mysql apt-get install nginx php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-cgi mysql-server 安装期间会被“强烈要求”输入数据库密码 我直接回车,后面将设置php走unixsock访问mysql不走tcp/ip协议,管理的时候让win7下面的客户端通过ssh隧道访问,这样我不需要密码同时还保证效率和安全。 The following extra packages will be installed: libapparmor1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmcrypt4 libmysqlclient18 libonig2 libperl4-corelibs-perl libqdbm14 libterm-readkey-perl lsof mysql-client-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5 nginx-common nginx-full php5-common php5-json php5-readline Suggested packages: libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl libmcrypt-dev mcrypt mailx tinyca fcgiwrap nginx-doc ssl-cert php-pear php5-user-cache Package mailx is a virtual package provided by: mailutils 1:2.99.98-2 heirloom-mailx 12.5-4 bsd-mailx 8.1.2-0.20141216cvs-2 You should explicitly select one to install. Package php5-user-cache is a virtual package provided by: php5-yac 0.9.2-1 php5-xcache 3.2.0-1 php5-apcu 4.0.7-1 You should explicitly select one to install. ## php-pear nginx-doc apt-get install libmcrypt-dev mcrypt tinyca fcgiwrap ssl-cert zip vi /etc/php5/fpm/php.ini 设置: memory_limit = 32M cgi.fix_pathinfo=1 vi /etc/php5/fpm/php-fpm.conf 设置: process.max = 4 vi nginx.conf location ~ .*\.php(\/.*)*$ { fastcgi_index index.php; include fastcgi_params; } service nginx reload service php5-fpm reload service mysql reload phpmyadmin 设为通过unixsock访问mysql 三、minidlna sudo apt-get install minidlna vi minidlna.conf 写入: media_dir=V,/data0/movie media_dir=A,/data0/music media_dir=P,/data0/picture db_dir=/var/lib/minidlna log_dir=/var/log listening_ip=192.168.123.1 port=8200 presentation_url=http://192.168.123.1:8200/ friendly_name=MoviePi inotify=yes notify_interval=600 系统自带的/etc/init.d/minidlna文件运行有问题,媒体显示为零,需要做下修改 cat /etc/init.d/minidlna > /etc/init.d/minidlna.orig chmod 644 /etc/init.d/minidlna.orig vi /etc/init.d/minidlna 修改为: #!/bin/sh # # MiniDLNA initscript # # Based on the mediatomb debian package. # Original authors: Tor Krill |
将Raspberry变:打印服务器、BitTorrent下载服务器
一、打印服务器 1.安装CUPS软件,"CUPS“是linux下可以用通用打印系统 sudo apt-get install cups 2.允许pi用户配置CUPS, sudo usermod -a -G lpadmin pi 3.备份替换CUPS配置 sudo service cups stop sudo mv /etc/cups/cupsd.conf /etc/cups/cupsd.conf.orig cd /etc/cups/ sudo wget http://jxeeno.tk/local--files/blog:raspberry-pi:print-server/cupsd.conf sudo service cups start 4. sudo netstat -anp | grep 631 tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2613/cupsd udp 0 0 0.0.0.0:631 0.0.0.0:* 2613/cupsd 5. 通过xrdp远程连接到Raspberry Pi,在本地浏览器上输入https://192.168.123.1:631/ 增加和管理打印机。 6. 网络打印机的地址例如“http://树莓派ip:631/printers/scx3405 ”,PC端按照此地址添加网络打印机和驱动就行了 7. 安卓手机,可以在play市场中,搜索“print”,找到对应品牌的打印机,按照网络打印机的地址“http://树莓派ip:631/printers/scx3405 ”添加打印机,这样手机也能打印了 二、BitTorrent下载服务器 1. sudo apt-get install transmission-daemon sudo service transmission-daemon stop 修改/etc/transmission-daemon/settings.json 主要是修改用户名、密码、网段的白名单 2. sudo service transmission-daemon stop 在电脑的浏览器里输入:http://[IP地址]:9091/ 开始使用。 |
配置pptp客户端,n2n客户端,sshuttle,netcat,tor……
一、PPTP 1.pptp-linux sudo apt-get install pptp-linux 2.建立VPN链接 sudo /usr/sbin/pptpsetup --create my_pptp_vpn --server 122.10.89.20 --username merry --password 111111 --encrypt --start 三个参数:IP地址、用户名、密码 3.测试VPN: sudo pon my_pptp_vpn #连接VPN ifconfig #如果 ifconfig能看到 ppp0这个设备并有IP地址分配,那说明连接成功了 sudo poff my_pptp_vpn #断开链接 4.关于路由表 # 将访问请求默认转发到ppp0设备,即VPN链路 sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE #将国内IP添加到路由策略中,令其直接走路由器。 #脚本参考 https://github.com/sabersalv/freedom-routes 配置路由器的DHCP服务器,将客户端的IP默认网关指向树莓派的IP地址。 二、N2N 1.安装n2n 放弃用apt-get(sudo apt-get install n2n),改用重新源码编译 在基于 Debian 的系统上安装 n2n: sudo apt-get install subversion build-essential libssl-dev cd /opt svn co https://svn.ntop.org/svn/ntop/trunk/n2n cd n2n/n2n_v1/ make 在基于 Red Hat 的系统上安装 n2n: yum install subversion gcc-c++ openssl-devel cd /opt svn co https://svn.ntop.org/svn/ntop/trunk/n2n cd n2n/n2n_v1/ make 然后: strip supernode edge cp -a supernode edge /usr/local/sbin/ 服务端: supernode -l 3333 客户端: 连接到服务器完整格式如下: edge -d edge0 -a 10.0.0.10 -c mynetwork -u 1000 -g 1000 -k password -l 1.1.1.1:5000 -m ae:e0:4f:e7:47:5b > /dev/null 2>&1 指定好IP、网名、明文密码(会加密)、MAC地址(重连时延用arp表) 捆绑MAC地址最好不要省略,因为假设省略了,重新连接时,旧的arp表还没失效,会连不上。 三、Sshuttle 1.安装sshuttle sudo apt-get install sshuttle 2.用法: $sudo sshuttle –r |
服务自启动方法,远程控制
1.服务自启动方法 方案1 sudo apt-get install chkconfig sudo chkconfig --add hostapd sudo chkconfig --add isc-dhcp-server 方案2 让服务openvpn.client2开机启动 sudo update-rc.d openvpn.client2 defaults 取消服务openvpn.client2的开机自动启动 sudo update-rc.d -f openvpn.client2 remove 方案3 sudo insserv /etc/init.d/openvpn.client2 #添加服务 sudo insserv -r /etc/init.d/openvpn.client2 #删除服务 2.远程控制 安装VNC远程控制 sudo apt-get install tightvncserver 测试 vncserver -geometry 1440x900 安装xrdp远程控制 sudo apt-get install xrdp 这个图是通过手机上的rdp客户端连接到Pi的截图 这个图是通过电脑上的windows远程连接连接到Pi的截图 图上的右下角显示刚安装上去的蓝牙适配器 |
让树莓派自动识别windows格式的U盘和移动硬盘
■ 1.挂载NTFS格式的硬盘(读写方式挂载) #安装所需软件包 sudo apt-get install fuse-utils ntfs-3g #加载内核模块 modprobe fuse 为每次开机运行,在/etc/modules文件增加一行: fuse #编辑fstab让移动硬盘开机自动挂载 sudo vi /etc/fstab #在最后一行添加如下内容 /dev/sda1 /mnt/myusbdrive ntfs-3g defaults,noexec,umask=0000 0 0 #保存重启,即可生效 2.挂载FAT32格式的硬盘 #创建挂载点 sudo mkdir /mnt/myusbdrive #编辑fstab让移动硬盘开机自动挂载 sudo vi /etc/fstab #在最后一行添加如下内容 /dev/sda1 /mnt/myusbdrive auto defaults,noexec,umask=0000 0 0 #保存重启,即可生效 3.挂载exFAT格式的硬盘 sudo apt-get install exfat-fuse 4. 如果想开机自动挂载,而不是每次手工执行,可以编辑 /etc/fstab 文件。比如在末尾添加一行: /dev/sda1 /mnt/usbdisk vfat rw,defaults 0 0 5.当前用的方案—— 确认在/etc/modules文件有一行: fuse 通过给linux下的设备管理服务udev添加规则配置文件,可以实现命令行下USB存储设备自动挂载 sudo vi /etc/udev/rules.d/10-usbstorage.rules 复制粘贴这个脚本到编辑窗口 KERNEL!="sd*", GOTO="media_by_label_auto_mount_end" SUBSYSTEM!="block",GOTO="media_by_label_auto_mount_end" IMPORT{program}="/sbin/blkid -o udev -p %N" ENV{ID_FS_TYPE}=="", GOTO="media_by_label_auto_mount_end" ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" ENV{ID_FS_LABEL}=="", ENV{dir_name}="Untitled-%k" ACTION=="add", ENV{mount_options}="relatime,sync" ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="iocharset=utf8,umask=000" ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", ENV{mount_options}="iocharset=utf8,umask=000" ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}" ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}" LABEL="media_by_label_auto_mount_end" 保存退出 再次插入usb存储设备 会自动挂载到/media目录下面的目录 并且支持utf8格式的中文文件名。 |
VPN全局代理和路由表
服务器端centos搭建的openvpn因为兼顾MikroTik的RouteOS的连接,使用tap方式(可以加入网桥,并且能对其它连入设备dhcp),使用tcp方式。 认证改为"用户名"和"密码方式",因此取消tls-auth ta.key认证. 【PS: # ta.key, This file is secret # SSL/TLS额外提供的HMAC防火墙,打开会更安全 # # The server and each client must have a copy of this key. # The second parameter should be '0' on the server and '1' on the clients. tls-auth ta.key 0 # 启用tls-auth,需要用到从服务端拷贝过来的ta.key # If a tls-auth key is used on the server # then every client must also have the key. tls-auth ta.key 1 】 vi /sbin/a2.z._set_tap0_proxy.sh #!/bin/bash checkip() { # ipv4地址 echo $1 | grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null if [ $? = 1 ]; then return 1; fi return 0 } tmp1=`route -n | grep wlan0 | grep UG | grep -v 255.255.255.255 | awk '{print $2}'` ### 当wlan0的IP是default路由时 ### if checkip "$tmp1"; then #sudo route del -host 12.34.56.78 ### 特别解释:因为小区宽带对VPN的封锁,我将VPN通过ssh穿透的方法连到VPN服务器 ### ### 让“通向VPN服务器的路由”指向原wlan0的网关, 不然VPN会断开 ### sudo route add -host 12.34.56.78 gw $tmp1 sudo route add -host 8.8.8.8 gw $tmp1 sudo route add -host 8.8.4.4 gw $tmp1 ### 网通的dnsserver # sudo route add -host 202.106.0.20 gw $tmp1 ### www.ip.cn # sudo route add -host 211.55.86.186 gw 192.168.253.1 ### 删除原来wlan0的默认网关 ### sudo route del default gw $tmp1 ### 增加到隧道的网关 ### sudo route add default gw 192.168.253.1 fi |