禁止network manager 开机启动.
禁止network manager 开机启动. 安装sysv-rc-conf sudo apt-get install sysv-rc-conf 运行sysv-rc-conf sudo sysv-rc-conf 把network-m对应的xx都点掉.
禁止network manager 开机启动. 安装sysv-rc-conf sudo apt-get install sysv-rc-conf 运行sysv-rc-conf sudo sysv-rc-conf 把network-m对应的xx都点掉.
事务隔离 事务隔离级别 标准ANSI SQL规范中定义了四种隔离级别: 未提交读 (Read Uncommitted) : 最低隔离级别,一个事务能读取到别的事务未提交的更新数据,很不安全,可能出现丢失更新、脏读、不可重复读、幻读; 提交读 (Read Committed) : 一个事务能读取到别的事务提交的更新数据,不能看到未提交的更新数据,不可能可能出现丢失更新、脏读,但可能出现不可重复读、幻读; 可重复读 (Repeatable Read) : 保证同一事务中先后执行的多次查询将返回同一结果,不受其他事务影响,不可能出现丢失更新、脏读、不可重复读,但可能出现幻读; 序列化 (Serializable) : 最高隔离级别,不允许事务并发执行,而必须串行化执行,最安全,不可能出现更新、脏读、不可重复读、幻读。 隔离级别越高,数据库事务并发执行性能越差,能处理的操作越少。因此在实际项目开发中为了考虑并发性能一般使用提交读隔离级别,它能避免丢失更新和脏读,尽管不可重复读和幻读不能避免,但可以在可能出现的场合使用悲观锁或乐观锁来解决这些问题。 按照 SQL:1992 事务隔离级别,InnoDB 默认是可重复读的 (REPEATABLE READ) 。MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔离级别。你可以在命令行用-transaction-isolation选项,或在选项文件里,为所有连接设置默认隔离级别。 例如,你可以在my.inf文件的[MySQLd]节里类似如下设置该选项: transaction-isolation = {READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE} 用户可以用 SET TRANSACTION 语句改变单个会话或者所有新进连接的隔离级别。它的语法如下: SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE} 注意: 默认的行为 (不带session和global) 是为下一个 (未开始) 事务设置隔离级别。如果你使用GLOBAL关键字,语句在全局对从那点开始创建的所有新连接 (除了不存在的连接) 设置默认事务级别。你需要SUPER权限来做这个。使用SESSION 关键字为将来在当前连接上执行的事务设置默认事务级别。 任何客户端都能自由改变会话隔离级别 (甚至在事务的中间) ,或者为下一个事务设置隔离级别。 ...
PF_RING https://www.jianshu.com/p/6d3f3cdc2411 PF_RING简介 PF_RING是Luca研究出来的基于Linux内核级的高效数据包捕获技术。简单来说PF_RING 是一个高速数据包捕获库,通过它可以实现将通用 PC 计算机变成一个有效且便宜的网络测量工具箱,进行数据包和现网流量的分析和操作。同时支持调用用户级别的API来创建更有效的应用程序。 屏幕快照 2016-12-15 下午5.15.29.png 2、PF_RING的优点 现在我们知道PF_RING是拥有一套完整开发接口的高速数据包捕捉库,与我们熟知的libpcap十分相似,但其性能要优于libpcap。关于libpcap的实现机制可以参考libpcap实现机制及接口函数 问题 在传统数据包捕获的过程中, CPU的多数时间都被用在把网卡接收到的数据包经过内核的数据结构队列发送到用户空间的过程中。也就是说是从网卡–>内核, 再从内核–>用户空间,这两个步骤,花去了大量CPU时间,从而导致没有其他时间用来进行数据包的进一步处理。 在传输过程中 sk_buff 结构的多次拷贝,以及涉及用户空间和内核空间的反复系统调用极大的限制了接收报文的效率,尤其是对小报文的接收影响更为明显。 解决方案 ** PF_RING提出的核心解决方案便是减少报文在传输过程中的拷贝次数**。由下图我们可以直观的看到不同技术下对数据拷贝的优化是不同的。接下来将围绕这张图的实现路径解释PF_RING和PF_RING ZC库的实现机制。 libpcap、PF_RING、PF_RING ZC方案对比 网卡接收报文的前面的流程就是libpcap实现机制及接口函数中讲解的NAPI,主要的不同体现在报文在内核空间与用户空间的传递。 PF_RING noZC 1、PF_RING socket 针对轮询机制的不足,在轮询机制的基础上提出一种新的包捕获套接字模型,基于环形缓冲区的新的套接字 PF_RING 2、每创建一个PF _RING套接字便分配一个环形缓冲区,当这个套接字结束时释放这个缓冲区 3、PF_RING套接字绑定到某一网卡上时,这个网卡在套接字结束之前处于制度状态,当数据包到达网卡时,将其放入到环形缓冲区。如果缓冲区已经满,则将其丢弃。 4、用户空间可以直接访问这个环形缓冲区中的数据 5、当有新的数据包到来的时候,可以直接覆盖掉已经被用户空间读取过的那个数据包的空间 环形缓冲区示意图 PF_RING ZC PF_RING ZC 实现了PF_RING™ DNA(Direct NIC Access 直接网卡访问)技术。是一种映射网卡内存和寄存器到用户态的方法。 因此除了由网卡的网络处理单元完成DMA传输之外,没有任何额外的数据包复制,进一步节省了一次数据拷贝操作 这将性能更好,因为CPU周期的仅用于操作数据包,而不是把数据包从网卡挪走。 其缺点是,只有一个应用可以在某个时间打开DMA ring(请注意,现在的网卡可以具有多个RX / TX队列,从而就可以在每个队列上同时一个应用程序),换而言之,用户态的多个应用需要彼此沟通才能分发数据包。 PE_RING ZC 用户空间创建PF_RING套接字时 fd = socket(PF_RING, SOCK_RAW, htons(ETH_P_ALL)); 和基于PF_PACKET套接字的libpcap不同的是,PF_RING机制更为灵活: 1.PF_RING采用mmap的方式将网络裸数据放在一个用户态可以直接access的地方,而不是通过socket read/write机制的内存拷贝; 2.PF_RING支持下面1到3三种方式将裸数据放到mmap到用户态的环形缓冲区以及4的DNA方式: 1.按照PACKET套接字的方式从netif_receive_skb函数中抓取数据包,这是一种和PACKET套接字兼容的方式,所不同的是数据包不再通过socket IO进入用户态,而是通过mmap;(transparent_mode 0) 2.直接在NAPI层次将数据包置入到所谓的环形缓冲区,同时NAPI Polling到skb对列,对于这两个路径中的第一个而言,这是一种比2.1介绍的方式更加有效的方式,因为减少了数据包在内核路径的处理长度,但是要求网卡支持NAPI以及PF_RING接口(一般而言,NAPI会将数据包Polling到一个skb队列)。(transparent_mode 1) 3.和2相同,只是不再执行NAPI Polling。这就意味着,数据包将不会进入内核,而是直接被mmap到了用户态,这特别适合于用户态的完全处理而不仅仅是网络审计,既然内核不需要处理网络数据了,那么CPU将被节省下来用于用户态的网络处理。这可能会将内核串行的网络处理变为用户态并行的处理。(transparent_mode 2) 4.这是一种更猛的方式,唤作DNA支持的模式,直接绕过内核协议栈的所有路径,也就是说直接在网卡的芯片中将数据包传输到(DMA的方式)所谓环形缓冲区,内核将看不到任何数据包,这种方式和Intel的万兆猛卡结合将是多么令人激动的事啊;(DNA技术) E33B49AA-8CBA-4146-9AB7-A38EB076B11B.png 以上便是我们在文档中见到的transparent_mode。对于transparent_mode为0的情况,内核会通过net_if_recv_skb回调packet_rcv函数实现数据接收,所以当向系统内核插入PF_RING模块时在内核注册了packet_rcv钩子函数,使用通用的网卡驱动便可以实现向PF_RING传递报文。而对于transparent_mode为1和2的模式,则是需要使用PF_RING特殊定制的网卡驱动,并在网卡驱动中直接调用注册的包处理函数,将报文传递给PF_RING。 屏幕快照 2016-12-16 下午4.02.38.png transparent_mode是对skb_ring_handler之前的包处理路径进行优化, quick_mode是对skb_ring_handler之后的包处理过程进行优化 ...
spring 事务 @Transactional 使用 @Transactional 的要点有: 在DAO 层使用 JdbcTemplate 实现DB操作, 在 Service 的实现类上加上 @Transactional 注解, 不推荐在 Service 接口上加 @Transactional 注解. 需要进行事务控制的方法, 必须是 public 方法, 同时要打上 @Transactional 注解. 也可以在Class上加上 @Transactional 注解, 这样相当于给每个 public 函数加上了 @Transactional 注解, 当然我们还可以在其中的函数上加该注解, 这时候将以函数上的设置为准. @Transactional 使用陷阱: 只有 public 方法打上 @Transactional 注解, 事务控制才能生效. 注意自调用问题, @Transactional 注解仅在外部类的调用才生效, 原因是使用 Spring AOP 机制造成的. 所以: 主调函数如果是本Service类, 应该也要打上 @Transactional, 否则事务控制被忽略. 缺省的情况下, 只有 RuntimeException 类异常才会触发回滚. 如果在事务中抛出其他异常,并期望回滚事务, 必须设定 rollbackFor 参数. 例子: @Transactional(propagation=Propagation.REQUIRED,rollbackFor= MyException.class) 如果主调函数和多个被调函数都加了 @Transactional 注解, 则整个主调函数将是一个统一的事务控制范围, 甚至它们分属多个Service也能被统一事务控制着 通常我们应该使用 Propagation.REQUIRED, 但需要说明的是, 如果一个非事务方法顺序调用了"两个不同service bean"的事务函数, 它们并不在同一个事务上下文中, 而是分属于不同的事务上下文. https://www.cnblogs.com/harrychinese/p/SpringBoot_jdbc_transaction.html ...
linux version, Linux 查看版本, 发行版, 内核版本, uname uname -srm # -s kernel name, ubuntu 和 archlinux 都输出的是 Linux, 没见过其它输出 # -r kernel release, 内核版本号 # -m machine hardware name, 硬件架构 x86_64 # 查看内核版本 uname -r # 打印所有信息,包括内核版本和系统名称 uname -a # archlinux, debian, ubuntu cat /etc/issue # RedHat,CentOS cat /etc/redhat-release # debian, ubuntu cat /etc/os-release #查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称 cat /proc/version file /bin/ls /proc文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以文件系统的方式为访问系统内核数据的操作提供接口。而我们使用命令"uname -a"的信息就是从该文件获取的,当然用方法二的命令直接查看它的内容也可以达到同等效果.另外,加上参数"a"是获得详细信息,如果不加参数为查看系统名称。 查看发行版本信息 ubuntu lsb_release -a https://my.oschina.net/vshcxl/blog/698656 ...
article, 冠词 定冠词 “the”。 不定冠词(“a”或“an”)。 “the”是定冠词,用在特指名词或前文已提到的名词之前。定冠词特指的名词说的是特定的事物、人物、地点等。 示例 I met the fireman who saved my dog the other day. “the fireman(消防员)”指的是我之前见过的一个特定的消防员。 “a”和“an”是不定冠词,用在泛指名词前,即用来指示非特指的内容。 示例 Publishing a book is the lifetime goal of my father. https://wordvice.ai/cn/blog/definite-indefinite-articles-a-an-the
at a time, at one time take time 意为"花费时间", take one’s time 意为"慢慢来,别着急",相当于 “don’t hurry”。 例如: A great talent takes time to mature. 大器晚成。 Take your time, we still have 20 minutes left. 别着急,我们还有20分钟的时间呢。 at a time 意为"每次;一次"。 at one time 意为"同时;曾经一度",常用于过去时。 at the time 意为"在那时;在那段时间"。常用于过去时态。 例如: Take two pills at a time. 一次服两粒。 At one time they were friends, but they are seldom together now. 他们曾经是朋友,但是现在很少在一起了。 He agreed at the time but later changed his mind. 他当时同意了,但后来又改变了主意。
IELTS, 雅思 a, an art. 一个 abandon v. 抛弃,放弃 abandonment n.放弃 accord [ә’kɔ:d] vt.使一致,给予
monitor 分辨率(resolution) 指给定的距离(或面积)内“点”或“像素”的数量。有时被称为“解析度”。可分为显示分辨率、图像分辨率、打印分辨率和扫描分辨率等。分辨率也经常被用来表达一些别的概念,例如谈论显示器分辨率时经常看到“1024×768”这种表示,这个更准确的说应该是屏幕的“像素尺寸”。 作者:Amy 链接:https://www.zhihu.com/question/385596412/answer/1133513546 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 作者:Amy 链接:https://www.zhihu.com/question/385596412/answer/1133513546 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 DPI, dots per inch 常用的描述分辨率的单位有:DPI(点每英寸)和 PPI(像素每英寸)。还有一些其他单位,比如px/cm(像素每厘米, dpcm)、LPI(线每英寸)等,只有LPI是描述光学分辨率的尺度的,感兴趣的自行学习,就不提了。描述分辨率的单位:DPI:dots per inch,表示每英寸(对角线长度)能打印上的墨滴数量。最初应用于打印技术中。打印设备多在 300 至 3600 DPI 之间。PPI:pixels per inch,电子显示设备从打印设备中借鉴了 DPI 的概念,产生了 PPI的概念。即显示器每英寸(对角线长度)上像素点的数量,指像素密度。DPI 和 PPI 经常混用。因为很多行业将“Dot”泛指为所有的图像基本单元。多数情况下,DPI=PPI,后面涉及到视网膜屏幕(retina)时,会提到怎么就不等了。从技术角度说:“像素/pixel” 是数字领域特有,是成像设备(“多值设备”)的最小单元,PPI 只存在于电子显示领域;“点/dot” 是输出设备(“二值设备”)最小成像单元,点非黑即白,DPI 只出现于印刷领域。在实体世界中,屏幕的物理尺寸(physical size)通常用可视画面对角线长度表示,且一般以英寸(inch)为单位,比如 iPad 的大小 10.5"、11"、12.9",都是指的屏幕的对角线长度*。屏幕的大小还可以用物理像素尺寸来表示,如“2224x1668”(iPad Pro 10.5)。指长边上和短边上最多能显示的物理像素点个数。物理像素点是每个设备生产的时候就定好了的,是无法改变的,是设备能控制显示的最小物理单位,和屏幕物理尺寸大小有关。那么勾股定律算出对角线的像素点数,利用公式分辨率=对角线上的像素数/对角线长度,我们就可以计算得到 iPad Pro 10.5 屏幕分辨率(PPI/DPI)为264。 DPI(Dots Per Inch,每英寸点数)是一个量度单位,用于点阵数码影像,指每一英寸长度中,取样、可显示或输出点的数目。此概念主要用于打印输出。 不论是DPI还是PPI,实际都是一种换算的概念,即将图片承载的信息换算为现实中的图片(即人眼能实际看到的图像)。DPI和PPI的区别在于换算的途径不同,DPI面向的是印刷受体,而PPI面向的是显示屏幕。 ubuntu自带的远程桌面是vino-server 1.vino-server vino的好处是你的控制是跟在本地是一样的,你在远程打开的窗口,当你去本地登录时会发现这些窗口都在,如果两台机器离的不远,你甚至可以看见那个桌面上的鼠标跟着你窗口的一起在移动。但缺点就是如果你想远程连上vino,那么你得先在本地登录上账号,换句话说,你远程重启机器后,就没办法在用vino登录上那台机器了。 ubuntu下开启vino的方法倒是很简单: 服务端: 系统->首选项->远程桌面 选上"允许其他人查看您的桌面"“允许其他用户控制您的桌面"愿意的话还有"要求用户输入此密码”,不要选上"请您确认"。 客户端: 直接用ubuntu默认带的"远程桌面查看器"登录就行了。 2.vnc4server vnc4的好处是可以登录多个桌面,彼此不冲突。而且不会象vino一样,必须服务端登录后才能连接。但是vnc的桌面是虚拟的,你在客户端打开的程序,在服务端是看不到的。这样有时也不太方便。 vnc4可以从新立得软件包中安装,顺便在本地把xvncviewer也装了。 安装后设定密码: vncpasswd 启用vnc服务: vncserver 第一次启动后会在用户的主目录下生成.vnc的文件夹,默认的使用的是twm的界面,有点丑,所以打开.vnc下的xstartup把最后一行twm &注释掉。在下面添加一行: gnome-session &。这样就OK了。 ...
xrdp ubuntu sudo systemctl enable --now xrdp sudo ufw allow from any to any port 3389 proto tcp archlinux yay -S xrdp yay -S xorgxrdp vim /etc/X11/Xwrapper.config # content allowed_users=anybody systemctl start xrdp systemctl enable xrdp vim ~/.xinitrc # content exec startxfce4 remove yay -R xorgxrdp-devel-git yay -R xrdp Install xrdp on CentOS 7 / RHEL 7 By Raj Last updated Mar 29, 2018 88 Share xrdp is an Open Source Remote desktop Protocol server, which allows you to RDP to your Linux server from Windows machine; it is capable of accepting connections from rdesktop, freerdp, and remote desktop clients. ...
login as root gives “530 Login incorrect.” comment out root from both /etc/vsftpd/ftpusers and /etc/vsftpd/user_list
RHEL 5 vsftpd vsftpd安装 [root@linux01 ~]# mkdir /media/cdrom [root@linux01 ~]# mount -t iso9660 /dev/cdrom /media/cdrom # 挂载镜像 mount: block device /dev/cdrom is write-protected, mounting read-only [root@linux01 ~]# cd /media/cdrom/Server # 进入软件包目录 [root@linux01 Server]# [root@linux01 Server]# rpm -qa | grep ^vsftpd # 查询相关已经安装的软件包 [root@linux01 Server]# ls | grep vsftpd* # 查询当前路径下安装包 vsftpd-2.0.5-12.el5.i386.rpm [root@linux01 Server]# rpm -ivh vsftpd-2.0.5-12.el5.i386.rpm # 安装软件包 i安装 v输出详细信息 h进度 warning: vsftpd-2.0.5-12.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 ...
debian, grub2, run level edit /boot/grub/grub.cfg menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686-bigmem run level 3' -class debian -class gnu-linux -class gnu -class os { insmod part_msdos insmod ext2 set root='(hd0,msdos7)' search -no-floppy -fs-uuid -set ca201e81-b7d4-4cb1-9a68-707dab19738a echo 'Loading Linux 2.6.32-5-686-bigmem ...' linux /vmlinuz-2.6.32-5-686-bigmem root=/dev/sda8 ro quiet 3 echo 'Loading initial ramdisk ...' initrd /initrd.img-2.6.32-5-686-bigmem } menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686-bigmem run level 5' -class debian -class gnu-linux -class gnu -class os { insmod part_msdos insmod ext2 set root='(hd0,msdos7)' search -no-floppy -fs-uuid -set ca201e81-b7d4-4cb1-9a68-707dab19738a echo 'Loading Linux 2.6.32-5-686-bigmem ...' linux /vmlinuz-2.6.32-5-686-bigmem root=/dev/sda8 ro quiet 5 echo 'Loading initial ramdisk ...' initrd /initrd.img-2.6.32-5-686-bigmem }
ubuntu vnc 第一步,获取安装文件 sudo apt-get install vnc4server 第二步,修改VNC Password,不能太短 # vncpasswd Password: ** Verify:***** 第三步,检查防火墙,这个就不详细说明了 第四步,启动VNC server vncserver 第五步,通过客户端连接 地址后面加:1 启动完vnc4server后在你的主目录下将会产生一个.vnc的目录。 此时就可以通过vnc客户端链接到服务器了。 停止一个vnc4server vnc4server -kill :3 根据你启动时获得的数字替换此处的3。 打开 .vnc/xstartup 文件并编辑: gedit /.vnc/xstartup 文件看起来将是这样的: #!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vnccon** -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager & 修改 .vnc/xstartup文件并保存 取消unset和exec开始的行的注释,注释以xsetroot,vnccon**,xterm和twm开始的行。执行后看起来像这样: ...
ssh SSH和Session的关系是一对多的关系 SSH连接 (SSH Connection) 定义: 是客户端与服务器之间的底层加密网络连接 协议层: SSH Transport Layer Protocol 作用: 提供加密的通信通道, 作用: 提供加密、认证、完整性保护 生命周期: 从建立连接到断开连接的整个过程 数量: 通常一个客户端到服务器只有一个SSH连接 SSH Channel (SSH通道) 定义: 在SSH连接内部的逻辑通道 协议层: SSH Connection Protocol 作用: 在单个SSH连接上复用多个数据流 类型: session - 用于命令执行、shell direct-tcpip - 用于端口转发 forwarded-tcpip - 用于反向端口转发 x11 - 用于X11转发 SSH会话 (SSH Session) 定义: 运行在特定Channel上的服务, 是在SSH连接之上的逻辑会话 协议层: 应用层服务 作用: 用于执行具体的命令或启动shell 生命周期: 从创建会话到关闭会话 数量: 一个SSH连接可以创建多个会话 类型: exec - 执行单个命令 shell - 启动交互式shell subsystem - 启动子系统(如SFTP) 为什么需要会话管理? 状态隔离 每个会话有独立的环境变量、工作目录 不同命令之间不会相互影响 ...
squid cache_peer 参数详解 通过squid.conf配置文件中的cache_peer选项来配置代理服务器阵列,通过其他的选项来控制选择代理伙伴的方法。Cache_peer的使用格式如下: cache_peer hostname type http_port icp_port 共有5个选项可以配置: hostname:指被请求的同级子代理服务器或父代理服务器。可以用主机名或ip地址表示; type: 指明hostname的类型,是同级子代理服务器还是父代理服务器,也即parent (父) 还是 sibling (子) ; http_port: hostname的监听端口; icp_port: hostname上的ICP监听端口,对于不支持ICP协议的可指定7; options: 可以包含一个或多个关键字。 Options可能的关键字有: 1. proxy-only: 指明从peer得到的数据在本地不进行缓存,缺省地,squid是要缓存这部分数据的; 2. weight=n: 用于你有多个peer的情况,这时如果多于一个以上的peer拥有你请求的数据时,squid通过计算每个peer的ICP响应时间来 决定其weight的值,然后squid向其中拥有最大weight的peer发出ICP请求。也即weight值越大,其优先级越高。当然你也可以手工 指定其weight值; 3. no-query: 不向该peer发送ICP请求。如果该peer不可用时,可以使用该选项; 4. Default: 有点象路由表中的缺省路由,该peer将被用作最后的尝试手段。当你只有一个父代理服务器并且其不支持ICP协议时,可以使用default和no-query选项让所有请求都发送到该父代理服务器; 5.login=user:password: 当你的父代理服务器要求用户认证时可以使用该选项来进行认证。
Squid Squid cache (简称为Squid) 是一个流行的自由软件 (GNU通用公共许可证) 的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。 Squid的发展历史相当悠久,功能也相当完善。除了HTTP外,对于FTP与HTTPS的支援也相当好,在3.0 测试版中也支援了IPv6。
linux http proxy 在Linux的命令行底下,一般的程序都是使用http_proxy和ftp_proxy这两个环境变量来获得代理设置的。 export HTTP_PROXY=[username]:[password]@[proxy-web-or-IP-address]:[port-number] export HTTPS_PROXY=[username]:[password]@[proxy-web-or-IP-address]:[port-number] export FTP_PROXY=[username]:[password]@ [proxy-web-or-IP-address]:[port-number] export NO_PROXY=localhost,127.0.0.1,::1 export http_proxy=http://localhost:8118/ # 需要密码的代理服务器 export http_proxy=http://username:password@proxyserver:port/ export ftp_proxy=http://username:password@proxyserver:port/ unset http_proxy unset https_proxy unset ftp_proxy export no_proxy=“localhost,127.0.0.0/8,*.local” 例如,假设你的代理服务器为192.168.1.1,端口是8080,用户名为cnkker,密码是123456,那么应该这样设置这两个环境变量: export http_proxy=http://cnkker:123456@192.168.1.1:8080 export ftp_proxy=http://cnkker:123456@192.168.1.1:8080 如果要使下次生效,需要把导出配置写入~/.bashrc中,这样配置之后,退出再登录一次,或者直接使用下面的命令source一下.bashrc: source ~/.bashrc 现在,上述程序就可以通过代理服务器访问网络了。
go rlimit package main import ( "fmt" "syscall" ) func main() { var rLimit syscall.Rlimit err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit) if err != nil { fmt.Println("Error Getting Rlimit ", err) } fmt.Println(rLimit) rLimit.Max = 999999 rLimit.Cur = 999999 err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit) if err != nil { fmt.Println("Error Setting Rlimit ", err) } err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit) if err != nil { fmt.Println("Error Getting Rlimit ", err) } fmt.Println("Rlimit Final", rLimit) }
代理服务器 代理服务器不仅可以为局域网内的PC提供代理服务,还可以为基于Windows网络的用户提供代理服务。而且代理服务的实现十分简单,它只需在局域网的一台服务器上运行相应的服务器端软件即可。目前代理服务器软件产品主要有: Microsoft Proxy,Microsoft ISA,WinProxy、WinGate、winRoute、SyGate、CCProxy、SuperProxy等;而在UNIX/Linux系统主要采用Squid和Netscape Proxy等服务器软件作为代理。 squid 在Unix/linux下使用的比较优秀的代理服务器软件Squid。之所以说它比较优秀,是因为它可以在代理服务器上作一个很大的缓存,可以把好多常去的网站内容存储到缓存中,这样,内部网的机器再访问那些网站,就可以从缓存里调用了。这样一方面可以加快内部网浏览因特网的速度,这就是所谓的提高客户机的访问命中率;另一方面,Squid不仅仅支持HTTP协议,而且还支持FTP,GOPHER,SSL和WAIS等协议。 考虑到简捷实用的原则,squid作为代理服务器不仅性能优异,而且还详细的纪录了各个客户端的访问纪录Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。Squid可以工作在很多的操作系统中,如AIX, Digital Unix, FreeBSD, HP-UX, Irix, Linux, NetBSD, Nextstep, SCO, Solaris,OS/2等,也有不少人在其他操作系统中重新编译过Squid。由于它安装简单,使用方便,所以已经被广泛使用。 1 Microsoft Proxy Server Microsoft Proxy Server是把对Intemet的访问带入一个组织内部每一个桌面上去的一种容易而又安全的方法,它包括Web Proxy服务器,Winsock Proxy服务器和Socks Proxy服务器。Web Proxy为Cache类代理软件,Winsock Proxy通过Winsock协议代理使LAN内的计算机好像直接连接在上一级网络上一样,实际上是通过代理服务器发送请求,但客户端要安装 Microsoft Winsock Proxy Client软件。Microsoft ProxyServer 2.0是Microsoft Bank Ofice客件之一,运行在Windows NT 或Windows 2000环境下。在Windows NT Server4.0上安装时,必须安装3.0或更高版本的IIS(Internet InformationServer)及Windows Service Pack 3或更高版本的补丁。 它容易与安全地安装,充分利用内建在Windows NTServer里的安全性,并允许网络操作员对进入或来自Intemet的访问作有效地控制。它支持全部的Internet协议包括HTTP、FTP、 Gopher、RealAudio、VDOfive、IRC、邮件和新闻协议,支持IPX/SPX和TCP/IP协议来容易访问Intemet服务器以及内部网上的应用软件。它提供超高速缓存,保存网络带宽,改善客户机的响应时问,减少网络的拥挤,并且在不加重最终用户和网络管理员负担的情况下改善对网络资源的控制。管理员可以根据用户、服务、端口或IP域来允许或拒绝入站或出站的连接,可以阻止对一些指定站点的访问,但不能采用直接导入方法来设定允许访问站点地址。它与NT网络系统管理服务集成,ProxyServer生成一套Windows NT Performance Counters来监视网络上任何一台代理服务器的状态,与Windows NT ServerDirectory Services集成来用户等级的验证。井提供防火墙等Intemet安全认证特性。 2 Wingate Wingate是Qbic公司的产品,软件分为服务器和客户两部分。服务器可运行于Win 98或Win NT平台,提供用户认证,各种网络应用层协议代理,Intemet访问控制,包过滤等服务;客户部分为一个用户登录程序Gatekeeper,用户使用它在代理服务器上进行登录,代理服务器将用户的IP地址与相应用户账号绑在一起。如果这一用户是管理员,还可以使用Gatekeeper进行远程管理。 Wingate支持双网络接口,一个接口通过网络适配器卡连接内部局域网络,另一个网络接口连接Intemet,两块网卡问的IP转发要禁用,使内部网络与外部网络完全隔开,形成双宿网关防火墙。Wingate也支持单网卡,在许多校园网中,只允许部分计算机具有Intemet访问权,利用这些计算机作为代理服务器,为其他的计算机提供服务,只是它不具备防火墙的功能。Wingate除了提供FTP Proxy、Telnet Proxy、 POP3 Proxy、RealAudio Proxy、Socks Pmxy代理服务之外,还提供了DNS、DHCP、拨号管理等丰富功能。 3 SyGate ...