Mac连接迷雾通后,App Store等苹果自带软件无法连接

巧克力大神不是说现在的自动设置是所有都用http代理,但是app store这些应用不能走http吗,那么单独把它们改成socks行不行呢 ?我不懂,我就瞎说一下

@nullchinchilla 我試着去寫了一個更簡單的socks5 to http, socks5 9909 -> http 9910,然後使用PAC模式連App Store是完全沒有問題的。

也就是說,問題很可能出現在 這句代碼 中所使用 socks2http ,我找了一下go的issues,然後找到了 這個 ,可能是導致這個問題的原因吧。。

1 个赞

我不是大神 :rofl:

1 个赞

用什麼語言寫的?能否github上發一下,我沒準能使用。爲什麼用go是因爲rust沒有很好的server-side http proxy library

也是go寫的,不過我只是用於測試,所以沒有加入錯誤的處理等
rust的話,我找到了 GitHub - xVanTuring/socks2http-rs: A simple app for converting socks5 proxy to http 我先去試試能不能代理到App Store

1 个赞

@nullchinchilla
經過測試,在我這邊使用這個項目去訪問App Store沒有問題。
把go版socks2http換成xVanTuring寫的那個也許就可以解決樓主所提出的問題。

2 个赞

非常感謝!我甚至會考慮把他寫的整合到geph4-client裡面

1 个赞

如果大家有時間,請幫忙試試我所提出的解決方案是否可行。

Steps:

  1. 連接Geph
  2. 下載這個 socks2http-osx-amd64-v0.1.0.zip 並 unzip 放在 Downloads
  3. 打開Terminal
  4. 輸入 killall socks2http && ~/Downloads/socks2http -l 127.0.0.1:9910 -s 127.0.0.1:9909
  5. 再次檢查 App Store 是否工作
1 个赞

根據 对于Mac开Geph连接App Store的反馈 ,基本上可以確定問題所在,如果大家有相同的問題,可以試著使用上面的方法自行解決或者等待開發者的下一次更新。

2 个赞

我刚才小试了一下也是可以的~之后我再多试试 有什么疑问再来反馈 谢谢呀

我发现按照步骤运行了Terminal命令后,app store能打开了,可是浏览器上不了网了。换了几个浏览器,腾讯和google都打不开。
截屏2021-01-23 16.10.07 截屏2021-01-23 16.14.25

除了 google.com 其他的能打開嗎?比如 https://www.youtube.com ,如果都打不開我覺得可能原因是socks2http被關了,建議試試 killall socks2http && nohup ~/Downloads/socks2http -l 127.0.0.1:9910 -s 127.0.0.1:9909 &

1 个赞

是的,国内国外任何网页都打不开。
我试了新指令,网页能打开,app store打不开。

如果这个bug只是临时自行解决的时候会出现,在新版本中不会出现,那就等新版本也好~

我去用中國的電腦做個測試,你等等

1 个赞

字有點多,如果想直接看結果可以直接看最後一段加粗的字體。。

根據你的描述大致可以分解成三個小問題

  1. rust版的socks2http 不知道什麼原因斷開了。
  2. 用了rust版socks2http之後瀏覽器能使用但App Store還是不行。
  3. 在socks2http斷開後重新在背景(nohup)下用socks2http導致瀏覽器能使用但App Store還是不行。

針對以上三個問題,在過去的四個多小時我分別在廣東廣州,上海和浙江杭州的三台MacBook進行了近80種可能的自動測試。

針對第一個問題:我直接使用原始碼編譯出debug版的socks2http,並且故意使程式出錯,但多次測試發現,就算是程式出錯也只是顯示各種奇怪的error(比如 error: connection closed before message completed),但不會斷開。也就是說,只有在用戶主動關閉了terminal時他才斷開。

針對第二個問題:我寫了一個script去自動測試使用rust版的socks2http和go版的socks2http時App Store和Chrome是否能連網,並截圖上傳至我的Telegram,我通過對比上傳到Telegram的186組圖片發現,有4次go版的socks2http有時也能連到App Store,而且有9次rust版的socks2http有時也連不到App Store。看了一下影片的回放,發現是App Store沒有正確被關閉就進行了下一組測試。也就是說,導致問題2出現的原因有可能是cache。

針對第三個問題:多次測試發現程式在背景運行和前景一樣,沒有發現問題。

另外,我在本機的電腦測試了一下,發現了以下幾個問題

  1. 就算是使用go版的socks2http,但用第三方工具Surge的增強模式去使用http代理去訪問App Store也不存在問題。
  2. 使用日本節點去訪問App Store好像有點問題(等我試多幾次,遲點抓包App Store要訪問的域名看看)。

綜上所述:你所說的再次使用指令也不能打開App Store的原因很有可能是因為cache,所以建議你去試試按下 command + Q 關閉 App Store然後再次打開試試是否能使用,另外不知道你是不是用日本節點測試的,如果是,請使用新加坡節點再試試。最後,我想問你所說的App Store打不開是指打開後全部空白還是打開之後有一行字說無法連線之類的?

1 个赞

按照你说的方法,又试了几遍,确实是之前使用terminal不当,我以为关掉再输入一遍命令不会影响结果。另外日本节点连app store也是有些问题,换成新加坡节点就顺畅了。现在app store和网页连接都正常了,辛苦你了!

nohup xxx & 可以使 xxx 在背景運行,這樣Terminal應該就不用一直開着了,等開發者把socks2http放入geph4-client之後就不用那麼麻煩了。
另外日本那個很難(根本不能)連入App Store,我也不清楚是什麼原因,等開發者來解決吧。
@nullchinchilla

1 个赞

明白! :pleading_face: 十分感谢~~

這是我在廣東廣州的電腦,使用Surge抓直連App Store(中國區)時的域名,開發者有時間看看這些為什麼日本節點很難(根本不能)訪問

1 个赞

@nullchinchilla
經過大量的自動測試 Geph 4.0.10 已修復這個問題,但日本節點無法訪問App Store的問題仍未解決。

App Store請求的域名
錯誤截圖