设置git ssh代理

万万没想到啊,github被封轮到自己头上了。 这个博客是在windows下用Typora写的,然后hugo生成,直接用git for windows提交,今天git无法提交了。 必须设置一下git ssh的代理了,我用的是socks5。 在C:\Users\username\.ssh\config文件中添加相关配置,如果没有config文件需要手动创建,connect命令是git Windows客户端git for windows自带的, 位于<Git-install-path>\mingw64\bin\connect.exe socks代理添加以下配置 Host github.com(改成你的站点) ProxyCommand connect -S 127.0.0.1:1080 %h %p 可以配置多个网站Host Host github.com(改成你的站点) ProxyCommand connect -S 127.0.0.1:1080 %h %p Host bitbucket.org(改成你的站点) ProxyCommand connect -S 127.0.0.1:1080 %h %p 如果Host设置为*,代理会对所有未配置的Host起作用。以下有三项配置,访问github使用第二项配置,访问bitbucket使用第三项配置,其它网站使用第一项配置 Host * ProxyCommand "C:/Program Files/Git/mingw64/bin/connect.exe" -H 127.0.0.1:1080 %h %p IdentityFile "C:/Users/bybon/.ssh/id_rsa" TCPKeepAlive yes IdentitiesOnly yes Host github.com ProxyCommand connect -S 127.0.0.1:1080 %h %p Host bitbucket.com ProxyCommand connect -S 127.0.0.1:1080 %h %p

2024年01月17日 · 1 分钟 · 69 字 · 八戒

Postfix和Sendmail设置所有邮件都收到一个邮件用户下

Postfix设置所有邮件都收到一个邮件用户下 申请了一个yi.zapto.org的免费域名,想把*@yi.zapto.org的邮件地址都送到zrr@yi.zapto.org这个地址去。 用Postfix来做: 编辑main.cf,设置邮件的域名,对了,最好在/etc/hosts中增加yi.zapto.org域名的解析。 # vi /etc/postfix/main.cf ... inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, yi.zapto.org virtual_alias_maps = hash:/etc/postfix/virtual ... 编辑virtual,设置全域邮件转发到zrr # vi /etc/postfix/virtual @yi.zapto.org zrr # postmap /etc/virtual 如果有多个域名,那么在mydestination最后依次添加,并且修改virtual并重新hash即可。 ok,重启postfix service postfix restart Sendmail设置所有邮件都收到一个邮件用户下 用Sendmail来做: 编辑local-host-names,设置邮件的域名,对了,最好在/etc/hosts中增加yi.zapto.org的解析,否则sendmail启动时会反解,速度很慢。 # vi /etc/mail/local-host-names yi.zapto.org 编辑virtusertable,设置全域邮件转发到zrr # vi /etc/virtusertable @yi.zapto.org zrr # rm /etc/virtusertable.db # cd /etc/mail # make 编辑sendmail.cf,增加信任用户nobody # vi /etc/mail/sendmail.cf ... ##################### # Trusted users # ##################### # this is equivalent to setting class "t" Ft/etc/mail/trusted-users Troot Tdaemon Tuucp Tnobody ... 这样所有发过来的邮件都会自动转发到zrr这个账号下。 ...

2024年01月17日 · 1 分钟 · 96 字 · 八戒

更新jar包或者jar包中的文件

jar包可以当作一个zip包来看待。 jar文件:/home/resin.jar 需要更新包中com/caucho/server/port/Port.class类文件 方法1,直接更新: 查看jar包的文件目录结构 jar tf resin.jar 更新指定内容 jar uf resin.jar com/caucho/server/port/Port.class jar uf testRedis-33.jar redis.properties 方法2,解压替换后再打包: 解压包: mkdir new cd new jar xvf ../testRedis-33.jar 进行修改 vi redis.properties 重新压包 jar cmvf META-INF/MANIFEST.MF t.jar *

2024年01月17日 · 1 分钟 · 35 字 · 八戒

怀念永远的freshmeat.net

怀念永远的freashmeat 这个网站是从一开站就关注的,基本上天天都看,有10几年了。 持续到2014年6月18日,永久的封站了。 时不时的,仍会打开这个网页,逡巡良久!!!,时光荏苒,2024年了,关站都要10年了。纪念一下!

2024年01月16日 · 1 分钟 · 4 字 · 八戒

LVM卷必须备份metadata

这是个反面教材。在京东数科的时候用的是kvm的虚机系统,同事追求更快,文件镜像用的是raw分区,里面装了lvm。 grub的启动文件如下: kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_root-lvroot rd_NO_LUKS rd_LVM_LV=vg_root/lvroot LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 console=ttyS0,115200n8 rd_LVM_LV=vg_root/lvswap KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet rd_NO_DM 看上面,root也被建立在lvroot的lvm卷上了。 然后就遇到了断电,导致kvm挂掉了,悲催的是lvm卷被破坏了,用尽办法也弄不出来卷信息。因为lvm的metadata没有备份。 数据全丢,无法恢复,杯具了。 综上LVM的metadata必须备份,方法如下: vgcfgbackup /etc/lvm/backup/VolGroup是当前lvm配置的一个备份,而/etc/lvm/archive是归档。 看看归档: ls -l /etc/lvm/archive/* -rw-------. 1 root root 1820 Jun 12 2015 /etc/lvm/archive/VolGroup_00000-444365108.vg 恢复方法: vgcfgrestore 具体恢复的步骤: 首先查看blkid,看看硬盘分区的UUID blkid /dev/mapper/VolGroup-LogVol01: UUID="d6d24cc3-5e4a-4f4d-a0b1-2524e727b0fe" TYPE="ext4" /dev/sda1: UUID="3d0103ac-1b18-4da5-bc20-4b7a980a55c0" TYPE="ext4" /dev/sda2: UUID="i5Cd6V-IVHN-e694-o9CQ-OZJe-zvt0-AhUBLq" TYPE="LVM2_member" /dev/mapper/VolGroup-LogVol00: UUID="06fe7af0-dee5-494a-9b5b-11bf95244acd" TYPE="swap" 查看lvm信息,找出里面所有物理卷的UUID: less /etc/lvm/archive/VolGroup_00000-444365108.vg ... physical_volumes { pv0 { id = "i5Cd6V-IVHN-e694-o9CQ-OZJe-zvt0-AhUBLq" device = "/dev/sda2" # Hint only ... 首先恢复所有的pv,物理卷,这里我们就一个物理卷,所以执行一次,如果有多个物理卷,一个一个来即可 pvcreate --uuid "i5Cd6V-IVHN-e694-o9CQ-OZJe-zvt0-AhUBLq" \ --restorefile /etc/lvm/archive/VolGroup_00000-444365108.vg 物理卷恢复完了,再恢复lv,逻辑卷: vgcfgrestore -f /etc/lvm/archive/VolGroup_00000-444365108.vg VolGroup 弄完后vgdisplay查看一下: vgdisplay --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 9 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 1.64 TiB PE Size 4.00 MiB Total PE 428705 Alloc PE / Size 428705 / 1.64 TiB Free PE / Size 0 / 0 VG UUID 3h3yik-kmqP-Q8sC-5bn0-cwtw-SXpo-orMlKn 就恢复成功了。 ...

2024年01月16日 · 1 分钟 · 159 字 · 八戒

kvm提高网卡效率使用SR-IOV

什么是SR-IOV呢? 简单的说,SR-IOV是一种虚拟化方案,用来使一个PCIe的物理设备,能虚拟出多个设备,这些虚拟出来的设备看起来就像是多个真实的物理设备一样,并获得能够与本机性能媲美的 I/O 性能。 SR-IOV现在最多是用在网卡上,kvm虚拟机的网卡功能一般会下降到实体机的30-50%,如果改用SR-IOV会大大提高网卡性能。 SR-IOV 有2种功能: 物理功能 (Physical Function, PF) 就是标准的PCIe的功能了 虚拟功能 (Virtual Function, VF) 与物理功能关联的一种功能。VF 是一种轻量级 PCIe 功能,可以与物理功能以及与同一物理功能关联的其他 VF 共享一个或多个物理资源。VF 仅允许拥有用于其自身行为的配置资源。 好的,如何在生产环境中使用它呢? 场景如下: 如上: 机房里有两台交换机: switch-1用来连接各机器的eth0口 switch-2用来连接各机器的eth1口 switch-1和switch-2互联 这是一种机房的标准连法,eth0和eth1做bonding,做线路冗余 server-2是一台Dell R730的服务器,eth0连switch-1,eth1连switch-2,上面跑了三个虚机: VM-1跑在基于bonding的Bridge上,标准的做法 VM-2和VM-2则是利用了SR-IOV,从虚拟网卡直连到物理网卡,减少了中间环节,提高了网卡的效率。 首先要把服务器的vt和sr-iov打开: System BIOS > Processor Settings > Virtualization Technology System BIOS > Integrated Devices > SR-IOV Global Enable 当然,这么麻烦的事情,我们直接用脚本通过idrac调用racadm来做好了: #!/bin/sh sshpass -p "xxxxx" ssh -oStrictHostKeyChecking=no root@10.8.$1 racadm set BIOS.ProcSettings.ProcVirtualization Enabled sshpass -p "calvin" ssh -oStrictHostKeyChecking=no root@10.8.$1 racadm set BIOS.IntegratedDevices.SriovGlobalEnable Enabled sshpass -p "xxxxxx" ssh -oStrictHostKeyChecking=no root@10.8.$1 racadm serveraction powercycle 注意,Dell R730的机器用得是Intel I350的以太网卡,每个网口最多支持8个VF,如果是高级的X520网卡,就支持64个VF。 ...

2024年01月15日 · 5 分钟 · 883 字 · 八戒

idrac远程登录服务器

Linux的环境了,windows的不行。 Dell的idrac其实提供了远程的ssh界面,我们通常用idrac来设置bios什么的,当然如果能通过idrac直接登录服务器那就更好了。 首先普及以下几个概念: tty: Video console terminal (abbreviation for “Teletype”) ttyS: Serial console terminal pts: Virtual console terminal (pseudo-tty or pty but stands for Pseudo-Terminal Slave (PTS)) 简单说,tty是带显示器的终端,ttyS是串口终端,pts是虚拟终端。tty接显示器、键盘,ttyS接串口,pst就是远程ssh/telnet过来的虚拟终端。 第一步:修改Dell Bios dell的bios中关于serial的配置如下图: 我们只改前两个就可以了: Serial Communication: “On with serial redirection via com2” Serial Port Address: “Serial Device1 = COM1, Serial Device2=COM2 External Serial Connector: “Serial Device1” Failsafe Baud Rate: “115200” Remote Terminal Type: “VT100/VT220” Redirection After Boot: “Enabled” 解释一下: Serial Communication 缺省是 On without Console Redirection,我们需要把所有console的显示都转发到com2上,所以需要改。 Serial Port Address 缺省是 Serial Device 1=COM2, Serial Device 2=COM1,如果不改,那么接上物理机上的串口就可以看到登录画面了,这样等于串口1废掉了,万一我们要把物理机上的com1口给留出来备用,插个串口的wavecom modem做报警用,那就傻眼了,所以必须改掉留出com1备用。 External Serial Connector 缺省是 Serial Device1,不用改,那么物理机上的com口就是com1了,对应ttyS0。 Failsafe Baud Rate: “115200”,不用改,就用这个高的好了。 Remote Terminal Type: “VT100/VT220”,不用改,黑白的vt100就很好 Redirection After Boot: “Enabled”,也不用改,需要重定向。 当然,用脚本一次搞定更好: ...

2024年01月15日 · 2 分钟 · 252 字 · 八戒

用openssh的tunnel建立vpn

openssh是支持隧道的,所以很简单就可以在ssh中再套个管道,直接用来vpn,场景如下: 如上图,A机能ssh无密码登录B机 A机的IP:172.16.8.106 B机的IP:172.16.8.108 A机拨通vpn tunnel后tun的ip:192.168.244.2 B机拨通vpn tunnel后tun的ip:192.168.244.1 首先编辑A和B的/etc/ssh/sshd_config,允许tunnel,缺省是不允许的,然后service sshd restart ,重启sshd ... PermitTunnel yes ... A和B安装linux下的tunctl软件,并启动一个tunnel设备 yum install tunctl tunctl -t tun5 -u root 在A(172.16.8.106)机器上生成key,并设置能无密码证书直接登录B(172.16.8.108) ssh-keygen ssh-copy-id root@172.16.8.108 在A上执行命令,建立ssh tunnel: ssh -w 5:5 root@172.168.8.108 在A上执行 ifconfig tun5 192.168.244.2 pointopoint 192.168.244.1 netmask 255.255.255.0 在B上执行 ifconfig tun5 192.168.244.1 pointopoint 192.168.244.2 netmask 255.255.255.0 这样分别在A和B上ping 192.168.244.1和192.168.244.2,都能通就表示已经ok了。 优化一下,A和B两边都先把tun5起来以后,直接在A上一句话搞定,这个不会自动退出,所以得ctrl+z,然后bg放后台去: ssh \ -o PermitLocalCommand=yes \ -o LocalCommand="ifconfig tun5 192.168.244.2 pointopoint 192.168.244.1 netmask 255.255.255.0" \ -o ServerAliveInterval=60 \ -w 5:5 root@172.16.8.108 \ 'ifconfig tun5 192.168.244.1 pointopoint 192.168.244.2 netmask 255.255.255.0; echo tun5 ready' 如果要用在翻墙的环境,那就得保持长链接了。假设A机器是在一个防火墙后,且被NAT了,那么就得先这样打通隧道: ...

2024年01月15日 · 1 分钟 · 155 字 · 八戒

多网关、策略路由、负载均衡的实际应用

场景: 公司有两条线路,一条是鹏博士的,一条是电信的。 鹏博士是100兆共享线路,电信是10兆独享线路。 鹏博士对端的地址是1.1.1.1,本地服务器地址是1.1.1.2 电信对端的地址是2.2.2.2,本地服务器是2.2.2.3 所以导致有两个网关,大部分公司同事用得是100兆的共享,10兆的被客服独用,但是使用率很低。那能否两边都用呢? 答案是可以的,用策略路由就可以。 策略路由需要用到iproute2,没有的话先安装一下。 定义策略路由表 cd /etc/iproute2/ echo "101 pengboshi" >> rt_tables echo "102 dianxin" >> rt_tables 定义策略路由 ip route add default via 1.1.1.1 table 101 ip route add default via 2.2.2.2 table 102 ok,流量分为两个方向,进来的和出去的,先定义简单的,进来的: ip rule add from 1.1.1.1 table 101 ip rule add from 2.2.2.2 table 102 出就比较麻烦了,100兆和10兆按权重来分,8:2吧 ip route replace default scope global \ nexthop via 1.1.1.1 dev eth0 weight 8 \ nexthop via 2.2.2.2 dev eth0:1 weight 2 注意,因为我们是用了一台路由器来连接上面两个网关的,服务器实际是一个网卡上连到交换机,然后再上连路由器的,如下图: 我们把这一切固定下来,编辑/etc/rc.d/rc.local即可 # cat /etc/rc.local #!/bin/sh touch /var/lock/subsys/local /sbin/ip route replace default scope global nexthop via 1.1.1.1 dev eth0 weight 8 nexthop via 2.2.2.2 dev eth0:1 weight 2

2024年01月11日 · 1 分钟 · 104 字 · 八戒

Keepalived与iptables mark的联动

Iptable可以给进来的包打上标签,比如我们把从1.2.3.4进来的包都打上标签2000(标签可以是任何整数) iptables -t mangle -A PREROUTING -i eth0 \ -p tcp -s 1.2.3.4 --dport http -j MARK --set-mark 2000 或者把访问172.16.8.1的80和443端口的包都打上标签123: iptables -t mangle -A PREROUTING -i eth0 \ -p tcp -d 172.16.8.1/32 -m multiport --dports 80,443 -j MARK --set-mark 123 随后我们就可以在keepalived里来指定virtual_server来处理这些打过标签的流量了: virtual_server fwmark 123 { ... } 具体的一个用法,如果你想禁止从1.2.3.4来的ip访问你服务器,于是乎你就可以先给包打上标签2000,然后配个服务器,上面写联系人和电话,单独给他看,他看到会联系你询问被屏蔽的原因,如下: virtual_server fwmark 2000 { delay_loop 6 lb_algo wlc lb_kind NAT persistence_timeout 0 protocol TCP real_server 10.10.10.1 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 } } }

2024年01月11日 · 1 分钟 · 77 字 · 八戒