V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cattyhouse  ›  全部回复第 17 页 / 共 64 页
回复总数  1265
1 ... 13  14  15  16  17  18  19  20  21  22 ... 64  
2015-09-08 13:57:50 +08:00
回复了 mckelvin 创建的主题 分享创造 Anyconnect Virtual Router
@humiaozuzu 求内测。。。
@tsing 看出来了,这句话 newloc=`/usr/sbin/scselect ${location} | sed 's/^.*(\(.*\)).*$/\1/'` , 在 echo 的同时执行了命令,不过真的不建议这么做。。。建议分步来
先设置
/usr/sbin/scselect ${location}
然后再
newloc=$(/usr/sbin/scselect | sed 's/^.*(\(.*\)).*$/\1/'`)
....
2015-09-04 13:30:44 +08:00
回复了 bugsnail 创建的主题 程序员 osx/linux 切换 hosts 的脚本
@bugsnail 这玩意不需要 shell ,只需要用 ln 就可以了,也就是 link 。
2015-09-04 10:10:45 +08:00
回复了 bugsnail 创建的主题 程序员 osx/linux 切换 hosts 的脚本
继续吐槽

echo 127.0.0.1 localhost > /etc/hosts 2>&1

不能这么 echo 的。。。 至少也要" " 用这个括号扩起来吧?用 echo 多行,可以这么干

echo "127.0.0.1 localhost
xxxx google.com
...
...
...
...
xxxx facebook.com" > /etc/hosts

或者最好:

cat > /etc/hosts << EOF
127.0.0.1 localhost
xxxx google.com
...
...
...
...

xxxx facebook.com
EOF
2015-09-04 10:02:59 +08:00
回复了 bugsnail 创建的主题 程序员 osx/linux 切换 hosts 的脚本
感觉 LZ 只写了一半。。。而且判断超级简单的说,你这么切换了之后。。。想要还原的话怎么办,还要手动 cp 回去。。。 拉了屎却不擦屁股。

num=1
if [ $num -eq 1 ];then

这是一句废话。
直接 echo 不就行了?


其实非常简单的事情。。。
先备份原来的 hosts
cp /etc/hosts /etc/hosts.orig
再创建一个自定义的 hosts.my ,内容:
cat /etc/hosts.orig > /etc/hosts.my
cat >> /etc/hosts.my << EOF
xxxx google.com
xxxx facebook.com
xxxx xxxx
EOF

然后再弄两个 alias

alias hosts.orig="ln -sf /etc/hosts.orig /etc/hosts"
alias hosts.my="in -sf /etc/hosts.my /etc/hosts"

是不是拉屎了也擦屁股了?
2015-09-02 18:17:15 +08:00
回复了 cattyhouse 创建的主题 macOS Mac 上全自动的 chnroute
@Daniel65536 有现成的 script 来 expand cidr 地址,然后就可以做比较,晚上测试下

http://stackoverflow.com/questions/16986879/bash-script-to-list-all-ips-in-prefix
2015-09-02 18:07:55 +08:00
回复了 akring 创建的主题 MacBook Pro Mac 上如何自如的切换网络代理?
@ptyfork 其实各有利弊, SSID 跟 Proxy 设置区分开来还是很方便的。
2015-09-02 18:00:30 +08:00
回复了 cattyhouse 创建的主题 macOS Mac 上全自动的 chnroute
# wc -l chnroute.txt
5824
# cat chnroute.txt | cidrmerge | wc -l
3757

@cattyhouse
@Daniel65536
2015-09-02 17:59:12 +08:00
回复了 cattyhouse 创建的主题 macOS Mac 上全自动的 chnroute
@cattyhouse 你说的 3765 条是不是包含 Private Network 的 ip 段啊,我用 cidrmerge 操作 chnroute 之后得到的数量是 3757 条,奇怪了。
2015-09-02 17:57:46 +08:00
回复了 cattyhouse 创建的主题 macOS Mac 上全自动的 chnroute
@Daniel65536 虽然你吐槽不是很中听,但是我对于这些有用的建议还是很快去实现的,等我测试 cidrmerge 生成的 ip 的确包含全部中国的 ip 而且不包含任何中国以外的 ip 之后,我再把 chnroute 替换掉。
2015-09-02 17:56:07 +08:00
回复了 cattyhouse 创建的主题 macOS Mac 上全自动的 chnroute
@Daniel65536 如果什么地方可以对这两个 cidr 展开然后做比较,就知道是否会有不同了。
2015-09-02 17:55:13 +08:00
回复了 cattyhouse 创建的主题 macOS Mac 上全自动的 chnroute
@Daniel65536 谢谢,刚才用 cidrmerge 重新生成了一份 ip 列表,数量从 chnroute 的 5824 变成 3757 ,只是不知道是否会有”误伤“ 或 “遗漏”?
2015-09-02 14:14:12 +08:00
回复了 akring 创建的主题 MacBook Pro Mac 上如何自如的切换网络代理?
获取 ssid 这样似乎更准确 ( awk 语法变化一下)

networksetup -getairportnetwork en0 | awk -F": " '{print $2}'
2015-09-02 14:00:18 +08:00
回复了 akring 创建的主题 MacBook Pro Mac 上如何自如的切换网络代理?
@jeffma 你这个真心搞复杂了,不需要用 location 的,你的只有两种情况 1 , 在公司 2 ,在其他地方。可以通过判断 ssid 来修改代理参数,比如你的公司的 Wi-Fi ssid 为 “ office ”,可以用下面的 shell 来做:

if [ "$(networksetup -getairportnetwork en0 | awk '{print $4}')" = "office" ]; then #在公司
# 先关闭 Wi-Fi 的所有代理设置
networksetup -setwebproxystate Wi-Fi off
networksetup -setsocksfirewallproxystate Wi-Fi off
networksetup -setautoproxystate Wi-Fi off

#打开代理的 autoproxy ,设置为公司的 pac
networksetup -setautoproxystate Wi-Fi on
networksetup -setautoproxyurl Wi-Fi http://公司 pac 地址

else # 不在公司
# 先关闭 Wi-Fi 的所有代理设置
networksetup -setwebproxystate Wi-Fi off
networksetup -setsocksfirewallproxystate Wi-Fi off
networksetup -setautoproxystate Wi-Fi off

#打开代理的 autoproxy ,设置为电脑本地的 pac
networksetup -setautoproxystate Wi-Fi on
networksetup -setautoproxyurl Wi-Fi http://你本地的 pac 地址

fi

就搞定了,效果一样, shadowsocks app 不需要动它,让它一直在后台运行。
2015-09-02 12:17:24 +08:00
回复了 akring 创建的主题 MacBook Pro Mac 上如何自如的切换网络代理?
接上,我有个项目是实现 chnroute 全自动加载,虽然跟你这个无关,但是其中“监控网络变化来执行命令”可以用在你的这个需求上:

https://github.com/cattyhouse/chnroute-automation-mac
2015-09-02 12:14:29 +08:00
回复了 akring 创建的主题 MacBook Pro Mac 上如何自如的切换网络代理?
给楼主一个思路, bash 脚本:

If 检测到公司的网络; then
stop shadowsocks
networksetup -set 清空所有代理
networksetup -set 公司 http 代理
else
networksetup -set 清空所有代理
start shadowsocks
fi
至于“检测到公司网络” 这个怎么判断?如果你连的 Wi-Fi ,可以通过 ssid 判断。实在不行可以用公司网络的 ip 地址段判断,具体就是 netstat -nr |grep 公司网关地址。

其余的请 man networksetup

以后只需要在终端敲一次这个命令,就全自动化了。

另外如果你完全不想敲,还可以用 launchd 来监控网络变化执行这个脚本。

要是有你的一些基本信息,比如公司 Wi-Fi 的名字,比如公司获取的内网 ip 段,我可以把这个给你完善下。
2015-09-02 11:59:02 +08:00
回复了 akring 创建的主题 MacBook Pro Mac 上如何自如的切换网络代理?
networksetup 命令。
2015-09-02 11:20:34 +08:00
回复了 cattyhouse 创建的主题 macOS Mac 上全自动的 chnroute
@Daniel65536
@geeti

mac 上用 shadowvpn , openconnect 都要用 sudo 啊,用 networksetup 也要 sudo 的啊,我说的是“终端操作” 而且是趋向于自动化。。。 不需要过多的人工干预。
2015-09-02 11:13:37 +08:00
回复了 cattyhouse 创建的主题 macOS Mac 上全自动的 chnroute
@Daniel65536 请问你用 cidrmerge 生成的 ip 地址在哪里, show me the code 。

bestroutetb ,要搞两个网关,自动化实现起来不是很方便,尤其是如果 vpn 还没连上之前,加载 bestroutetb 会出现找不到 vpn 网关。
2015-09-01 20:18:26 +08:00
回复了 cattyhouse 创建的主题 macOS Mac 上全自动的 chnroute
@Daniel65536 要是能 merge , chnroute 项目为什么不 merge ?他们不 merge 自有原因。

用系统的 launchd 不是很建议,即使用了,还是要用 sudo 来 load 和 unload 。

对于常用终端的来说,改 sudo 设置基本上避免不了的,否则就要一直输入密码,程序无法后台自启动。
1 ... 13  14  15  16  17  18  19  20  21  22 ... 64  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5493 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 07:17 · PVG 15:17 · LAX 23:17 · JFK 02:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.