1. HTTP 伪装

2018-03-16 注:个人建议不要使用 HTTP 伪装)V2Ray 自 v2.5 版本开始提供 HTTP 伪装功能,后经作者不断完善,到现在已经非常成熟稳定了。V2Ray 的 HTTP 伪装功能可以可以将 V2Ray 的流量伪装成正常的 HTTP 协议的。这里给出一个 HTTP 伪装的服务器端与客户端配置文件示例。

配置中关于 HTTP 头字段的内容及含义,Wikipedia 有简要的说明,可参阅。

1.1. 配置

从 V2Ray 的实现角度来说,使用 HTTP 伪装的同时完全可以使用动态端口。但我个人并不建议这么做,因为从实际情况来看,基本上不会有人在一个服务器上开使用多个端口的 Web 服务。如果你觉得 HTTP 伪装的配置过于复杂不懂得如何修改,那请直接使用下面的配置即可。

1.1.1. 服务器

  1. {
  2. "log" : {
  3. "access": "/var/log/v2ray/access.log",
  4. "error": "/var/log/v2ray/error.log",
  5. "loglevel": "warning"
  6. },
  7. "inbounds": [
  8. {
  9. "port": 80, //推荐80端口,更好地迷惑防火墙(好吧实际上并没有什么卵用
  10. "protocol": "vmess",
  11. "settings": {
  12. "clients": [
  13. {
  14. "id": "b831381d-6324-4d53-ad4f-8cda48b30811",
  15. "level": 1,
  16. "alterId": 64
  17. }
  18. ]
  19. },
  20. "streamSettings": {
  21. "network": "tcp",
  22. "tcpSettings": {
  23. "header": { // header 这一项是关于数据包伪装的设置,可自定义合理的内容,但要确保服务器与客户端一致
  24. "type": "http",
  25. "response": {
  26. "version": "1.1",
  27. "status": "200",
  28. "reason": "OK",
  29. "headers": {
  30. "Content-Type": ["application/octet-stream", "application/x-msdownload", "text/html", "application/x-shockwave-flash"],
  31. "Transfer-Encoding": ["chunked"],
  32. "Connection": ["keep-alive"],
  33. "Pragma": "no-cache"
  34. }
  35. }
  36. }
  37. }
  38. }
  39. }
  40. ],
  41. "outbounds": [
  42. {
  43. "protocol": "freedom",
  44. "settings": {}
  45. },
  46. {
  47. "protocol": "blackhole",
  48. "settings": {},
  49. "tag": "blocked"
  50. }
  51. ],
  52. "routing": {
  53. "strategy": "rules",
  54. "settings": {
  55. "rules": [
  56. {
  57. "type": "field",
  58. "ip": [
  59. "geoip:private"
  60. ],
  61. "outboundTag": "blocked"
  62. }
  63. ]
  64. }
  65. }
  66. }

1.1.2. 客户端

  1. {
  2. "log": {
  3. "loglevel": "warning"
  4. },
  5. "inbounds": [
  6. {
  7. "port": 1080,
  8. "protocol": "socks",
  9. "sniffing": {
  10. "enabled": true,
  11. "destOverride": ["http", "tls"]
  12. },
  13. "settings": {
  14. "auth": "noauth"
  15. }
  16. }
  17. ],
  18. "outbound": [
  19. {
  20. "protocol": "vmess",
  21. "settings": {
  22. "vnext": [
  23. {
  24. "address": "serveraddr.com",
  25. "port": 80,
  26. "users": [
  27. {
  28. "id": "b831381d-6324-4d53-ad4f-8cda48b30811",
  29. "alterId": 64
  30. }
  31. ]
  32. }
  33. ]
  34. },
  35. "streamSettings": {
  36. "network": "tcp",
  37. "tcpSettings": {
  38. "header": { //这里的 header 要与服务器保持一致
  39. "type": "http",
  40. "request": {
  41. "version": "1.1",
  42. "method": "GET",
  43. "path": ["/"],
  44. "headers": {
  45. "Host": ["www.cloudflare.com", "www.amazon.com"],
  46. "User-Agent": [
  47. "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
  48. "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/53.0.2785.109 Mobile/14A456 Safari/601.1.46"
  49. ],
  50. "Accept-Encoding": ["gzip, deflate"],
  51. "Connection": ["keep-alive"],
  52. "Pragma": "no-cache"
  53. }
  54. }
  55. }
  56. }
  57. }
  58. },
  59. {
  60. "protocol": "freedom",
  61. "settings": {},
  62. "tag": "direct"
  63. }
  64. ],
  65. "routing": {
  66. "strategy": "rules",
  67. "settings": {
  68. "domainStrategy": "IPIfNonMatch",
  69. "rules": [
  70. {
  71. "type": "field",
  72. "ip": [
  73. "geoip:private"
  74. ],
  75. "outboundTag": "direct"
  76. },
  77. {
  78. "type": "chinasites",
  79. "outboundTag": "direct"
  80. },
  81. {
  82. "type": "chinaip",
  83. "outboundTag": "direct"
  84. }
  85. ]
  86. }
  87. }
  88. }

1.2. 更新历史

  • 2017-08-05 删掉部分不必要的配置
  • 2018-03-16 Update
  • 2019-01-13 V4.0+配置格式